鸣琴而治86
想给一个怪物抗击退除了给附魔还有什么方法?我本来想给怪物被攻击方向一个相反的向量。
但是攻击者的装备有击退效果,所以击退反向的向量不好计算。
那位大佬有更好的办法?

Bryan33
https://hub.spigotmc.org/javadoc ... ttribute.Attribute-

  1. val entity: LivingEntity
  2. val attr = entity.getAttribute(Attribute.GENERIC_KNOCKBACK_RESISTANCE)
  3. val modifier = AttributeModifier(UUID.randomUUID(), "击退抗性", 0.5, AttributeModifier.Operation.ADD_NUMBER)
  4. attr.addModifier(modifier)
复制代码

西门若和
666666666666

鸣琴而治86
Bryan33 发表于 2019-11-12 12:28
https://hub.spigotmc.org/javadoc ... ttribute.Attribute-

大哥。。这个1.8 LivingEntity中没有getAttribute 咋办。。

丿Playboy
鸣琴而治86 发表于 2019-11-13 15:23
大哥。。这个1.8 LivingEntity中没有getAttribute 咋办。。
  1. EntityLiving el = ((CraftLivingEntity)livingEntity).getHandle();
  2. el.getAttributeInstance(GenericAttributes.c).setValue(0.5);
复制代码

1.8可以用NMS来实现

栖枝鸟
大佬们给力

鸣琴而治86
求解!!!!!

winter0327
KnockbackResistance设成1

oldkingOK
本帖最后由 oldkingOK 于 2020-3-12 17:33 编辑

真巧,我刚刚实现了这个功能就找到了这篇问答帖

众所周知,如果一个实体被另一个实体伤害,一定有:
1.伤害    2.击退
如果不需要击退,步骤如下:
1.监听EntityDamageByEntityEvent事件
2.用getEntity()获取受伤害的实体,并判断是不是你指定的实体
3.如果是,取消该事件,并使用LivingEntity.damage(float)伤害这只实体
这样,就把实体伤害---转化成--->插件伤害,插件伤害是没有击退的
看不懂?直接上代码
假如我要给铁傀儡抗击退,代码如下(如有错误,欢迎指正)
  1. public class KnockBackEventListener<damageValue> implements Listener {
  2.     @EventHandler
  3.     public void onPlayerDamage(EntityDamageByEntityEvent event){
  4.         //获取受伤的实体
  5.         Entity entity = event.getEntity();

  6.                 //判断实体是不是LivingEntity
  7.         if(!(entity instanceof LivingEntity)) {
  8.             Minel4d.INSTANCE.getLogger().info("No LivingEntity?");
  9.             return;
  10.         }

  11.                 //强制转换成LivingEntity
  12.         LivingEntity livingEntity = (LivingEntity)entity;

  13.                 //获取伤害值
  14.         double damageValue = event.getDamage();

  15.                 //判断实体是不是铁傀儡
  16.                 if(livingEntity instanceof IronGolem){
  17.                         event.setCancelled(true);
  18.                         livingEntity.damage(damageValue);
  19.                 }
  20.     }
  21. }
复制代码
本代码块仅提供逻辑关系,请尽量不要复制粘贴

第一页 上一页 下一页 最后一页