如何改变实体的速度?
How to change speed of Entities?
如何使用插件更改 Minecraft
中实体的速度?我最近刚开始为Minecraft
制作plugins
,所以如果你能帮助我,我将不胜感激(我使用spigot
)
This forum post 或许可以解决您的问题。一个家伙问了和你一样的问题,并提供了一些代码片段来帮助你。
private static final UUID movementSpeedUID = UUID.fromString("206a89dc-ae78-4c4d-b42c-3b31db3f5a7c");
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityDamage(EntityDamageByEntityEvent event) {
LivingEntity entity = (LivingEntity) event.getEntity();
if (!(event.getDamager() instanceof Arrow)) return;
Arrow arrow = (Arrow) event.getDamager();
if (arrow.getShooter() instanceof Player) {
EntityInsentient nmsEntity = (EntityInsentient) ((CraftLivingEntity) entity).getHandle();
AttributeInstance attributes = nmsEntity.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
AttributeModifier modifier = new AttributeModifier(movementSpeedUID, "movement speed multiplier", 1.0d, 1);
attributes.b(modifier);
}
}
我希望我能提供更多帮助,但我仍然没有学会Java。我希望,很快。我的书架上确实有一本教学书 Java,但我只是没有时间。
你可以通过
改变玩家的行走速度
CommandSender sender;
Player player = (Player) sender;
player.setWalkSpeed(2);
或
public void setWalkSpeed(double speed) {
CommandSender sender;
Player player = (Player) sender;
if (speed > 10) {
double b = speed - 10;
speed -= b;
}
if (speed < 0) {
speed -= speed;
}
double a = speed / 10;
float value = (float) a;
player.setWalkSpeed(value);
}
然后在您的命令中调用方法 setWalkSpeed()。
如何使用插件更改 Minecraft
中实体的速度?我最近刚开始为Minecraft
制作plugins
,所以如果你能帮助我,我将不胜感激(我使用spigot
)
This forum post 或许可以解决您的问题。一个家伙问了和你一样的问题,并提供了一些代码片段来帮助你。
private static final UUID movementSpeedUID = UUID.fromString("206a89dc-ae78-4c4d-b42c-3b31db3f5a7c");
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityDamage(EntityDamageByEntityEvent event) {
LivingEntity entity = (LivingEntity) event.getEntity();
if (!(event.getDamager() instanceof Arrow)) return;
Arrow arrow = (Arrow) event.getDamager();
if (arrow.getShooter() instanceof Player) {
EntityInsentient nmsEntity = (EntityInsentient) ((CraftLivingEntity) entity).getHandle();
AttributeInstance attributes = nmsEntity.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
AttributeModifier modifier = new AttributeModifier(movementSpeedUID, "movement speed multiplier", 1.0d, 1);
attributes.b(modifier);
}
}
我希望我能提供更多帮助,但我仍然没有学会Java。我希望,很快。我的书架上确实有一本教学书 Java,但我只是没有时间。
你可以通过
改变玩家的行走速度CommandSender sender;
Player player = (Player) sender;
player.setWalkSpeed(2);
或
public void setWalkSpeed(double speed) {
CommandSender sender;
Player player = (Player) sender;
if (speed > 10) {
double b = speed - 10;
speed -= b;
}
if (speed < 0) {
speed -= speed;
}
double a = speed / 10;
float value = (float) a;
player.setWalkSpeed(value);
}
然后在您的命令中调用方法 setWalkSpeed()。