Skocz do zawartości
  • 0

Spam w konsoli, opóźnienie


nwse
 Udostępnij

Pytanie

Próbuję zrobić jump pady, niby wszystko działa, ale w konsoli jest taki spam.

Co robię źle?

	@EventHandler
	public void onPlayerInteract(PlayerInteractEvent e) {
		
		Player p = e.getPlayer();
		
		if(e.getAction() == Action.PHYSICAL) {
			if(e.getClickedBlock().getType() == Material.GOLD_PLATE) {
				Vector d = p.getLocation().getDirection();
				Vector v = new Vector(d.getX() * 0.8D, 0.8D, d.getZ() * 0.8D);
				p.setVelocity(v);
				p.playSound(p.getLocation(), Sound.ENDERDRAGON_WINGS, 5, 1);
			}
		}
	}

Dodam, że playSound działa od razu po nadepnięciu na płytkę (i wykonuje się 2 razy), a setVelocity (w górę (Y)) dopiero 0.5s po nadepnięciu

edit: nowy kod, nadal nie działa tak jak powinien (wyżej wyjaśnienie)

Edytowane przez Wojciu
Nowy kod
Wojciu

Przenoszę logi na https://code.skript.pl/

Notatka dodana przez Wojciu

Odnośnik do komentarza
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Domyślam się, że chodzi o to, że jak gracz stanie na bloku to coś się dzieje

Spróbuj pobawić się tak:

@EventHandler
public void onMove(PlayerMoveEvent e) {
    final Player p = e.getPlayer();
    final Location l = p.getLocation();
    if (l.substract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.JAKIS_MATERIAL) {
    	final Vector v = l.getDirection();
        v.setY(ILE TAM CHCESz);
        p.setVelocity(v);
}

#Ewentualnie ale nwm czy zadziała

@EventHandler
	public void onPlayerInteract(PlayerInteractEvent e) {
		
		Player p = e.getPlayer();
		
		if(e.getAction() == Action.PHYSICAL) {
			Location l = p.getLocation();
			if(l.substract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.GOLD_PLATE) {
				Vector d = l.getDirection();
				d.setY(ile tam chcesz);
				p.setVelocity(d);
				p.playSound(p.getLocation(), Sound.ENDERDRAGON_WINGS, 5, 1);
			}
		}
	}

 

Edytowane przez kerpson
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
11 minut temu, kerpson napisał:

@EventHandler
public void onMove(PlayerMoveEvent e) {
    final Player p = e.getPlayer();
    final Location l = p.getLocation();
    if (l.substract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.JAKIS_MATERIAL) {
    	final Vector v = l.getDirection();
        v.setY(ILE TAM CHCESz);
        p.setVelocity(v);
}

 

Działa, ale tylko wtedy, jeśli skoczę

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...