gpt4 book ai didi

java - 怎样才能让鸡蛋不会对队友造成击退?

转载 作者:行者123 更新时间:2023-12-01 22:03:06 24 4
gpt4 key购买 nike

如何让鸡蛋不会对队友造成击退?

当我使用这个代码时,不会用剑和其他东西伤害队友,但我不知道如何让鸡蛋不给队友击退。

实际上,我在游戏中向队友扔了一些鸡蛋,从我的角度来看似乎对他造成了伤害,但他并没有受到任何伤害。

@EventHandler
public void onPlayerDamage(EntityDamageByEntityEvent event) {
if(faze.equals("game")){
if (Team.getTeamType(event.getEntity()) == Team.getTeamType(event.getDamager())) {
event.setCancelled(true);
event.getEntity().setVelocity(event.getEntity().getLocation().getDirection().multiply(0));
}
}
}

如果有人能帮我解决这个问题,我将不胜感激

最佳答案

取消击退的旧方法是在伤害事件发生后将受损实体的速度设置为零(在所有三个方向)一刻(使用计划任务),尽管我相信您现在可以简单地取消伤害事件,然后自己使用 damage(double) 方法重新应用初始事件造成的最终伤害,但这次没有任何击退。

第二种方法过去执行起来要困难得多,因为使用 event.getDamage() 重新施加伤害仅返回对实体造成的基本金额,而没有考虑伤害减少诸如护甲等因素,导致造成的伤害比通常预期的要多。将速度设置为零的方法效果相当好,除非损坏的实体已经在运动,在这种情况下,速度仍然会被取消,这可能会导致不需要的行为。

现在,EntityDamageEvent 中有一个 getFinalDamage() 方法,您可以使用它来确保仍然造成正确的伤害(尽管尚未对此进行彻底测试)看看它是否在每种情况下都能正常工作)。

下面是一个示例:

@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Egg && event.getEntity() instanceof LivingEntity) { // If damager is an egg and hurt entity is a living entity
LivingEntity hurt = (LivingEntity) event.getEntity(); // Cast living entity so we can use damage() method
event.setCancelled(true); // Cancel the event, removing any knockback/velocity changes
hurt.damage(event.getFinalDamage()); // Re-apply final/original damage
}
}

这是重置速度的旧方法:

@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Egg) { // If damager is an egg
final Entity hurt = event.getEntity(); // Declare entity final so that we can use it in future scheduling
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { // Schedule a delayed task to run in one tick, plugin is main class
public void run() {
hurt.setVelocity(new Vector(0, 0, 0)); // Set velocity to zero vector, cancelling all motion
}
});
}
}

关于java - 怎样才能让鸡蛋不会对队友造成击退?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com