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

Oddzielny task dla każdego gracza w hashmapie


ShakeeTeFau

Rekomendowane odpowiedzi

Opublikowano

Witam! Potrzebuję sposobu na stworzenie i zapisanie runtasków oddzielnie dla każdego gracza w hashmapie. Po wykonaniu danej czynności gracz musi otrzymać cooldown.. Orientuje się ktoś jak mogłoby to wyglądać? Proszę o pomoc.. 

Opublikowano

Wuut.

Na jakiego taski tutaj, bo nie rozumiem?

UUID, Long

Trzymasz czas, kiedy będzie mógł już coś robić, if get(UUID) > currentTime = info i cancel/return. lel

784091427630431250239.png

Regulamin sygnatur

Opublikowano
9 minut temu, ShakeeTeFau napisał:

Bo taskiem muszę wysyłać pakiet z actiobarem, który pokazuje czas...

 

A po jakiego?

Z tego co wiem, to można to zrobić async, odpal jednego async taska po onlinePlayers, jeśli ma cooldown to wyślij pakiet z obliczeń (get(uuid) - currentTime) i masz lelelelelelel.

784091427630431250239.png

Regulamin sygnatur

Opublikowano
1 minutę temu, Oldis napisał:

 

A po jakiego?

Z tego co wiem, to można to zrobić async, odpal jednego async taska po onlinePlayers, jeśli ma cooldown to wyślij pakiet z obliczeń (get(uuid) - currentTime) i masz lelelelelelel.

Poważnie? Będziesz teraz polemizował co do słuszności używania czegoś co by działało i było wydajne? Poza tym mam jeszcze plugin który się bez tego nie obędzie więc i tak chciałbym umieć to zrobić c: no offence

Opublikowano
1 minutę temu, ShakeeTeFau napisał:

Poważnie? Będziesz teraz polemizował co do słuszności używania czegoś co by działało i było wydajne? Poza tym mam jeszcze plugin który się bez tego nie obędzie więc i tak chciałbym umieć to zrobić c: no offence

Informuję jak to można zrobić ;).

Jak chcesz trzymać dane taski, by je potem w biegu stopować, to najlepiej będzie ich ID trzymać w hashmapie po prostu..

784091427630431250239.png

Regulamin sygnatur

Opublikowano
14 minut temu, Oldis napisał:

Informuję jak to można zrobić ;).

Jak chcesz trzymać dane taski, by je potem w biegu stopować, to najlepiej będzie ich ID trzymać w hashmapie po prostu..

Tylko jak tworzyć taski o innych id w taki kodzie.. 

 

cd = Bukkit.getScheduler().scheduleSyncRepeatingTask(getInst(), new Runnable(){
							double a = new Double(abc);
							NumberFormat formatter = new DecimalFormat("#0.0");
							
							
							@Override
							public void run() {
								a = a - 0.1;
								String msg = getInst().getConfig().getString("Actionbar").replace("@time", formatter.format(a)+"").replace("&", "§");
								final PacketPlayOutTitle num = new PacketPlayOutTitle(EnumTitleAction.ACTIONBAR, ChatSerializer.a("{\"text\":\""+ msg +"\"}") ,0, 40, 1  );
								
								if(a < 0.0){
									Data.pearl.remove(p.getName());
								
									
								}else{
									((CraftPlayer) p).getHandle().playerConnection.sendPacket(num);
									
								}
								
								
							}
							}, 0, 2);

 

Opublikowano
String msg = getInst().getConfig().getString("Actionbar").replace("@time", formatter.format(a)+"").replace("&", "§");

 

chodzi o to? Zapomniało mi sie :/

Opublikowano

serio? Plujesz sie do Oldisa ktory doraza ci jak zamienic to gowno co chcesz stworzyc na cos lepszego. Jak widze ze ktos uzywa czegos takiego to mnie glowa boli 

replace("&", "§");

 

Opublikowano
1 minutę temu, __AHA__ napisał:

serio? Plujesz sie do Oldisa ktory doraza ci jak zamienic to gowno co chcesz stworzyc na cos lepszego. Jak widze ze ktos uzywa czegos takiego to mnie glowa boli 


replace("&", "§");

 

:') Mogę już się pogrążyć w zażenowaniu?

Opublikowano

stwórz sobie jakikolwiek generator tasków per player, ew. jakiś obiekt z polem id taska, który uruchamiasz i trzymaj to w hashmapie razem z czasem wykonania i porównuj

 

 

 

 

fKJeAI4.jpg

 

 

 

Opublikowano
50 minut temu, Oldis napisał:

Czemu ty wyciągasz ciągle z pliku dane.. eh.

.getTaskID czy jakos tak, dokumentację od tego masz i google

W UNIXie całkiem sporo rzeczy jest plikami, ale załadowana do RAMu konfiguracja już nie. Ja bym się przyczepił do regexa. BukkitRunnable ma id, można go stopować itp. Dobry do tego zastosowania. Chociaż nadal nie rozumiem po co, skoro można mieć jeden obiekt taska i uruchamiać go dla każdego gracza w zależności od unixtime zapisanego w mapie (UUID jako klucz!)

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...