Skocz do zawartości
  • 0

Score health pod nickiem


Pytanie

Siema potrzebuję pomocy przy scorze.

Ustawiam w pluginie w playerjoinevent każdemu prywatnie jego scoreboard typu health o displayname równym jego max health

każdego gracza z jego tablicą trzymam w innej klasie jako obiekt i zapisuje te obiekty do listy, aby później na nich jeszcze raz wywołać

metodę ustawiania tablicy, tak aby gracz który wchodzi miał widoczny score dla gracza który jest już na serwerze (niestety nie działa to w drugą stronę)

ArrayList<GraczTablica> listaScoreboardowGraczy = new ArrayList<>();
@EventHandler
	public void onPlayerJoin(PlayerJoinEvent e) {
		Player gracz = e.getPlayer();
		
		GraczTablica gt = new GraczTablica(gracz);
		gt.stworzTabliceGracza();
		gt.ustawTabliceGraczowi();
		listaScoreboardowGraczy.add(gt);
		
		Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
            public void run() {
            	for (GraczTablica x : listaScoreboardowGraczy) {
            		x.ustawTabliceGraczowi();
        		}
            }
        }, 20L);
	}
public class GraczTablica {
	
	private Player gracz;
	private Scoreboard tablica;
	Objective o;
	private int maxhealth;
	
	GraczTablica(Player p) {
		this.gracz = p;
		this.maxhealth = (int)p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue();
		this.tablica = Bukkit.getScoreboardManager().getNewScoreboard();
	}
	
	public void stworzTabliceGracza() {
		this.o = this.tablica.registerNewObjective("health", "health", "health");
		this.o.setDisplaySlot(DisplaySlot.BELOW_NAME);
		this.o.setDisplayName("/ "+Integer.toString(this.maxhealth) + "§c ❤");
	}
	
	public void ustawTabliceGraczowi() {
		this.gracz.setScoreboard(tablica);
		this.gracz.sendMessage("Ustawilem Ci scoreboard'a");
		this.gracz.sendMessage("Twoje max hp to: "+maxhealth);
	}
}

jednak w efekcie końcowym na serwerze pod nickiem obcego gracza wyświetlany jest własny max health gracza

 

pomógłby ktoś to ogarnąć, aby każdemu graczowi wyświetlało prawidłowy max health oraz aby score aktualizował się również dla graczy którzy wchodzą na serwer żeby widzili score tych którzy już na nim są

z góry dzięki

Odnośnik do komentarza
https://skript.pl/temat/44289-score-health-pod-nickiem/
Udostępnij na innych stronach

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

A czy lepszym rozwiązaniem nie byłoby zrobić tylko jednego scoreboarda, albo nie robić go wcale i dać do głownego Bukkitowego? Wtedy wystarczyłoby zrobić jeden Objective i każdemu graczu co x czasu ustawiać score na jego hp.

Odnośnik do komentarza
https://skript.pl/temat/44289-score-health-pod-nickiem/#findComment-277735
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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