Skocz do zawartości
  • 0

Wyłączanie fly


Vilor
 Udostępnij

Pytanie

Witam! 

Szukałem ostatnio pluginu na wyłączanie tylko fly podczas walki i nie mogłem znalezc nic ciekawego, mój antylogout nie oferuje takiej opcji i nie chciałbym go zmieniać. Chciałbym prosić bardziej doświadczone osoby o pomoc w napisaniu kawałku kodu, który, jeśli gracz lata wyłącza mu fly po uderzeniu tylko i wyłącznie przez drugiego gracza, bądz jeśli gracz który lata uderzy drugiego gracza wyłącza mu fly, w sensie ustawia tą zmienia:

player.setAllowFlight(false);
 

Z góry dziękuję za pomoc! :)

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

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
@EventHandler
public void onDamage(EntityDamageByEntityEvent e){
	if(e.getDamager() instanceof Player){
		Player p = (Player) e.getDamager();
		if(p.getAllowFlight()){
			p.setAllowFlight(false);
			p.setFlying(false);
		}
	}
}

Możesz tak lub też wykorzystać PlayerToggleFlightEvent ale to potrzebował byś tego swojego AntyLogouta żeby sprawdzać czy gracz jest podczas walki

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
6 minut temu, JanekMaSkrypta_ napisał:
@EventHandler
public void onDamage(EntityDamageByEntityEvent e){
	if(e.getDamager() instanceof Player){
		Player p = (Player) e.getDamager();
		if(p.getAllowFlight()){
			p.setAllowFlight(false);
			p.setFlying(false);
		}
	}
}

Możesz tak lub też wykorzystać PlayerToggleFlightEvent ale to potrzebował byś tego swojego AntyLogouta żeby sprawdzać czy gracz jest podczas walki

Działa, tylko nie tak jak trzeba, ponieważ wyłącza latanie również jeśli uderzę jakiegoś moba, oraz nie wyłącza fly drugiej osobie, która została zaatakowana a też posiada latanie 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Vilor napisał:

Działa, tylko nie tak jak trzeba, ponieważ wyłącza latanie również jeśli uderzę jakiegoś moba, oraz nie wyłącza fly drugiej osobie, która została zaatakowana a też posiada latanie 

@EventHandler
public void onDamage(EntityDamageByEntityEvent e){
	if(e.getEntity() instanceof Player && e.getDamager() instanceof Player){
		Player p = (Player) e.getDamager();
		Player p2 = (Player) e.getEntity();
		if(p.getAllowFlight()){
			p.setAllowFlight(false);
			p.setFlying(false);
		}
		if(p2.getAllowFlight()){
			p2.setAllowFlight(false);
			p2.setFlying(false);
		}
	}
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
7 minut temu, JanekMaSkrypta_ napisał:
@EventHandler
public void onDamage(EntityDamageByEntityEvent e){
	if(e.getEntity() instanceof Player && e.getDamager() instanceof Player){
		Player p = (Player) e.getDamager();
		Player p2 = (Player) e.getEntity();
		if(p.getAllowFlight()){
			p.setAllowFlight(false);
			p.setFlying(false);
		}
		if(p2.getAllowFlight()){
			p2.setAllowFlight(false);
			p2.setFlying(false);
		}
	}
}

 

Okej działa wszystko jak powinno, dziękuję za pomoc :D

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ę...