Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wlasna tablista przy uzyciu PacketPlayOutPlayerInfo (dawniej Packet201PlayerInfo).


dCrafters

Rekomendowane odpowiedzi

Opublikowano

W wersji 1.7 packet Packet201PlayerInfo (tablista) zmienil swoja nazwe na PacketPlayOutPlayerInfo , dzialanie jest takie samo.

Korzystanie z packetow niestety nie ominie limitu 15 znakow a ja dam wam gotowy kod na 60 slotowa tabliste.

 

Kodzik:

Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable(){
    public void run() {
    	refresh();
    }
	}, 20L, 40L);
}

			public void refresh(){
				for(Player online : Bukkit.getOnlinePlayers()){
					// 1
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9------>", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§7§lCubeHC.pl", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9<------", true, 5));
					// 2
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§cOnline:", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§a" + Bukkit.getOnlinePlayers().length, true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§o", true, 5));
					// 3
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§cGildie:", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§a***", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r", true, 5));
					// 4
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§c", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§c§c", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§r", true, 5));
					// 5
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§c§c§c", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§c§c§c§c", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§r§r", true, 5));
					// 6
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n§n§n§n§n§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n§n§n§n§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§r§r§r", true, 5));
					// 7
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n§n§n§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n§n§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§r§r§r§r", true, 5));
					// 8
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§n§n", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§r§r§r§r§r§r", true, 5));
					// 9
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§a", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§a§a", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§a§r§r§r§r§r", true, 5));
					// 10
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§b§b§b", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§b§b", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§b§r§r§r§r", true, 5));
					// 11
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§d§d§d", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§d§d", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§d", true, 5));
					// 12
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§8§8§8", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§8§8", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§8", true, 5));
					// 13
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§6§6", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§6§6§6", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§6", true, 5));
					// 14
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§5§5§5", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§5§5", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§5", true, 5));
					// 15
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§4", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§4§4", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§4§4§4", true, 5));
					// 16
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§3", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§3§3§3", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§3§3", true, 5));
					// 17
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§2", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§2§2", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§2§2§2", true, 5));
					// 18
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§1", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§1§1", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§1§1§1", true, 5));
					// 19
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9TeamSpeak3", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9WWW", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9Forum", true, 5));
					// 20
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§cts.cubehc.pl", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§ccubehc.pl", true, 5));
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§c---", true, 5));
					
					// usuwanie graczy
					((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(online.getName(), false, 5));
					
					}
			}

Zastanawiacie sie pewnie po co te kolory w pustych polach ?

Wartosci ktore sa wyswietlane na tabliscie nie moga sie powtarzac, koloru bez tekstu nie widac co nie ?

Usuwanie graczy polega na niewyswietleniu nicka gracza na tablscie.

 

Jezeli nie ogarniasz, nie moj problem.

Naucz sie javy , potem api bukkita ogranij i moze ogarniesz :P

 

 

Moje importy:

 

import net.minecraft.server.v1_7_R1.PacketPlayOutPlayerInfo;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
 
 
Drobne wytlumaczenie:
 
((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(napis wyswietlany, czy wyswietlac , ping));
 
czyli dla ((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo("§9------>", true, 5));
wyswietli -----> na czerwono z pingiem 5 (ping ponizej 60 jezeli dobrze pamietam wyswietli wszystkie kreski)
 
Serwer na ktorym można sprawdzić działanie kodu to fastpvp.ench.pl

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

Dzięki na na pewno się przyda ! dodam na swój serwer PVP :) fajnie jakbyś powiedział jak dodać Osoby online np.

 Online 10/100 oraz Zabitych i Zginiec

Opublikowano

((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(Bukkit.getOnlinePlayers().length + "/" + Bukkit.getMaxPlayers(), true, 5));  - pisane z pamieci , nie musi dzialac !

 

jakos tak to powinno byc.

 

Moze byc 1 drobny problem, zmienione pole w tabliscie wyswietla sie inaczej niz powinno ale temu chyba da sie jakos zaradzic ;) (stare zostaje, nowe dodaje sie tam gdzie jest wolne miejsce czyli jak masz zajete 50 miejsc to nowa wartosc pojawi sie na 51 miejscu)

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

podoba mi sie to iz 16 znakow to jest bardzo malo a tu prosze narescie cos minecraft dodal waznego i pomyslanego niz ku*** jakies 6 kąty 

Logo_IGracze.png

Opublikowano

Moim zdaniem to z czasem moze przycinac :) za czeste refreshe

Opublikowano

Zauwaz 1 rzecz, ta tablista sie nie odswieza.

Co ta sekunde wysyla kolejne pakiety do gracza, ale nie zastepuja one juz istniejacych (dodaja sie na koncu tablisty jezeli cos sie zmienilo, np. mamy pole z iloscia online - wejdzie gracz - doda sie pole)

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

podoba mi sie to iz 16 znakow to jest bardzo malo a tu prosze narescie cos minecraft dodal waznego i pomyslanego niz ku*** jakies 6 kąty 

Limit 16 znaków można ominąć scoreboardem, prefix 16 znaków + nazwa 16 + suffix 16 = 48 znaki.

Tworzysz nowa druzyne, ustawiasz jej prefix, a potem poprostu robisz cos w tym stylu

((CraftPlayer)online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(druzyna1 + "aaabbbcccdddeeef" + druzyna2, true, 5));

druzyna1 - prefix

druzyna2 - suffix

 

16 znaków ominięte :P

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

nie mogę zaimportować tego.

Może nie dodawaj tych importów, tylko dodaj te które zaproponuje ci Eclipse.

Do zabaw z packetami potrzebujesz dodac craftbukkita (wiekszosc uzywa tylko bukkita, zamiast obu).

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

Orientujesz zsie czy jest mozliwosc bawienia sie z Bungecordem i tabem wiekszym :P?

  • 2 tygodnie później...
Opublikowano

Nordicman jak komu wygodniej, ja sie plibem nie bawie a wysylajac packety mozna tez osiagnac ciekawe efekty

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

Ja mam problem, bo robię drużynę dodaje jej prefix i w prefixie daje takie coś "§c==========", a w pakiecie takie coś: ((CraftPlayer) online).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(getTeam("paski") + "§c========§1", true, 5));

 

i mnie kickuje gdy wejde na serwer i pokazuje, że jest za dużo znaków: 27 > 16

Opublikowano

stworz fakeplayera i druzyne, dodaj fakeplayera do druzyny - druzynie oczywiscie dodaj prefix/suffix, potem to wyslj do graczy

Aktualna próba: Postaw serwer mt2 na vps z ubuntu.

Opublikowano

już wiem jak to zrobić, bo ty napisałeś, że trzeba to zrobić tak:
1. Zrobić drużyne dodać do niej gracza i napisać na takiej zasadzie drużyna1 + gracz

2. Ale tak nie działa trzeba zrobić to tak: gracz

3. Ale do drużyny trzeba dodać gracza i prefix/sufix

  • 2 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...