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

[Pytanie]Komenda Minecraft


Rekomendowane odpowiedzi

Opublikowano

long last_komenda_wywołanie = System.currentMilis...

Wywołaj(){

if(System.currentMilis - last_komenda_wywołanie >= czasWMilisek){

last_komenda_wywołanie = System.currentMilis...

 

//bla bla

}

 

}

Opublikowano

Jak zrobić aby komendę można było wykonywać co jakiś czas ?

To jest trudniejsze niż ci się wydaje, bo musisz to robić dla każdego gracza z osobna. Najelpiej utworzyć własną klasę np. Gracz i w niej przechowywać nick gracza i tak jak povskill napisał czas ostatniego wywołania. Potem robisz listę (ArrayList) z tej klasy i podczas wejścia gracza do gry tworzysz w tej liście nowy obiekt tej klasy z nickiem gracza i czasem na 0. A przy wyjściu kasujesz go z listy (Zrobisz to z pomocą eventów). Teraz przejdźmy do sedna: Podczas wywołania komenty robisz tak jak povskill napisał - szukasz w liście obiektu z nickiem i sprawdzasz czas ostatniego wywołania. Robisz ifa i gotowe :D

Bywalec
Opublikowano

To jest trudniejsze niż ci się wydaje, bo musisz to robić dla każdego gracza z osobna. Najelpiej utworzyć własną klasę np. Gracz i w niej przechowywać nick gracza i tak jak povskill napisał czas ostatniego wywołania. Potem robisz listę (ArrayList) z tej klasy i podczas wejścia gracza do gry tworzysz w tej liście nowy obiekt tej klasy z nickiem gracza i czasem na 0. A przy wyjściu kasujesz go z listy (Zrobisz to z pomocą eventów). Teraz przejdźmy do sedna: Podczas wywołania komenty robisz tak jak povskill napisał - szukasz w liście obiektu z nickiem i sprawdzasz czas ostatniego wywołania. Robisz ifa i gotowe :D

Nie, nie trzeba tak :P

Pisałem kiedyś tym sposobem co pov, oczywiście nieco inaczej ale bez znacznych różnić

i każdy gracz miał swój czas, nie działało to globalnie

88498905942410602516.png

Opublikowano

Taskera użyj do tego ;)
W onEnable

        getServer().getScheduler().scheduleAsyncRepeatingTask(this, new TaskerClass(this), 100L, 10L);

Tutaj to 10L to jest czas w tickach (20L = 1 sec)

I potem w klasie TaskerClass robisz coś takiego

public class TaskerClass implements Runnable
{
	public NAZWA_KLASY_GŁÓWNEJ plugin;
	public TaskerClass(NAZWA_KLASY_GŁÓWNEJ instance)
	{
		this.plugin = instance;
	}
        @Override
	public void run()
        {
	    //tutaj dajesz to co ma się powstarzać 
	}
}

LICZĘ NA LIKE! 

=== Jeśli pomogłem ===

+++ Liczę na Like +++

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...