- Баллы
- 173
И так тоже делал.Ну давайте я тогда видео скину, посмотрите. Проблема не когда с земли быстро на пробел 2 раза жмешь, а когда 1 раз прыгнул, а потом перед приземлением двойной прыжок использовал.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
И так тоже делал.Ну давайте я тогда видео скину, посмотрите. Проблема не когда с земли быстро на пробел 2 раза жмешь, а когда 1 раз прыгнул, а потом перед приземлением двойной прыжок использовал.
И так тоже делал.
public class DoubleJump extends JavaPlugin implements Listener {
private Map<String, Vector> v;
@Override
public void onEnable() {
this.v = new HashMap<String, Vector>();
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void on(PlayerJoinEvent e) {
Player p = e.getPlayer();
this.v.put(p.getName(), new Vector(0, 0, 0));
}
@EventHandler
public void on(PlayerQuitEvent e) {
this.v.remove(e.getPlayer().getName());
}
@EventHandler
public void on(PlayerToggleFlightEvent e) {
Player p = e.getPlayer();
if (e.isFlying() && e.getPlayer().getGameMode() != GameMode.CREATIVE) {
p.setVelocity(new Vector(-this.v.get(p.getName()).getX(), 0.8D, -this.v.get(p.getName()).getZ()));
p.playSound(p.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 1, 1);
e.setCancelled(true);
}
p.setAllowFlight(false);
}
@EventHandler
public void on(PlayerMoveEvent e) {
Player p = e.getPlayer();
this.v.put(p.getName(), e.getFrom().toVector().subtract(e.getTo().toVector()));
if (p.isOnGround()) {
p.setAllowFlight(true);
}
}
@EventHandler
public void onVelocity(PlayerVelocityEvent e) {
Player p = e.getPlayer();
p.sendMessage(e.getVelocity().toString());
}
}
@EventHandler
public void on(PlayerToggleFlightEvent e) {
Player p = e.getPlayer();
if (e.isFlying() && e.getPlayer().getGameMode() != GameMode.CREATIVE) {
p.setAllowFlight(false);
new Scheduler(p, v.get(p.getName())).runTaskLater(main, 2);
e.setCancelled(true);
}
}
Всмысле "там велосити еще шлет при ударе о землю"? Пробовал через тик подбрасывать игрока, тоже такая проблема, через 2 тика - реже, но тоже случается. А есть вариант без задержек исправить?Так там велосити еще шлет при ударе о землю не? Тогда это абсалютная норма. Попробуй шедурером через тик отправлять. Я то думал реально какой то баг...
Не думаю. Это скорее клиентсайд и ничего с этим ты не сделаешь.Всмысле "там велосити еще шлет при ударе о землю"? Пробовал через тик подбрасывать игрока, тоже такая проблема, через 2 тика - реже, но тоже случается. А есть вариант без задержек исправить?
Как-то раньше играл на серверах с таким двойным прыжком и проблемы не замечал, странно.Не думаю. Это скорее клиентсайд и ничего с этим ты не сделаешь.
Из за пинга может и не замечал. Как раз накинет сверху 50-150 мс.Как-то раньше играл на серверах с таким двойным прыжком и проблемы не замечал, странно.