Odstępy czasowe: Różnice pomiędzy wersjami

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania
(Utworzono nową stronę "Tworzenie '''cooldownów''' polegających na użyciu periodicalu nie są opłacalne, wręcz są one zagrażające dla wydajności serwera i bardzo go obciążają zakła...")
 
m (nie ekspresje a wyrażenia)
Linia 1: Linia 1:
Tworzenie '''cooldownów''' polegających na użyciu periodicalu nie są opłacalne, wręcz są one zagrażające dla wydajności serwera i bardzo go obciążają zakładając dużą liczbę graczy na serwerze, dlatego aby zapobiec temu i dodatkowo napisać działający cooldown dla komend, wydarzeń i efektów należy wykorzystać [[zmienne]] i [[ekspresje]].
+
Tworzenie '''cooldownów''' polegających na użyciu periodicalu nie są opłacalne, wręcz są one zagrażające dla wydajności serwera i bardzo go obciążają zakładając dużą liczbę graczy na serwerze, dlatego aby zapobiec temu i dodatkowo napisać działający cooldown dla komend, wydarzeń i efektów należy wykorzystać [[zmienne]] i [[wyrażenia]].
  
 
== Cooldown ==
 
== Cooldown ==

Wersja z 20:29, 27 paź 2019

Tworzenie cooldownów polegających na użyciu periodicalu nie są opłacalne, wręcz są one zagrażające dla wydajności serwera i bardzo go obciążają zakładając dużą liczbę graczy na serwerze, dlatego aby zapobiec temu i dodatkowo napisać działający cooldown dla komend, wydarzeń i efektów należy wykorzystać zmienne i wyrażenia.

Cooldown

Na początku należy napisać, co ma wywoływać kod. Przykład rzucanego TNT z cooldownem:

on rightclick on tnt:
    if player's tool is tnt of unbreaking 10 named "&cRzucane TNT":

Zdarzenie on rightclick: wywołuje się wtedy, kiedy gracz naciśnie prawy przycisk myszy. Skript sprawdza, czy gracz trzyma TNT o nazwie &cRzucane TNT. Teraz należy użyć dwóch zmiennych:

  • zmiennej tymczasowej
  • zmiennej przypisanej do gracza

Zmienna tymczasowa pozwoli nam na określenie ile upłynęło czasu od ostatniego rzutu TNT i czasu obecnego określanego wyrażeniem %now%. Zmienne tymczasowe nie obciążają serwera, ponieważ zostają one automatycznie usuwane po zakończeniu sekcji kodu.

set {_czas} to difference between {tntrzut::%player%} and now
if {_czas} isn't less than 10 seconds:
    #kod
    set {tntrzut::%player%} to now
else:
    send "Poczekaj 10 sekund"

Jeżeli zmienna tymczasowa nie jest mniejsza niż <timespan>, w tym przypadku 10 sekund to kod powinien się wykonać. W innym przypadku gracz otrzyma wiadomość "Poczekaj 10 sekund". Po wykonaniu części kodu ustawiamy zmienną {tntrzut::%player%} na %now% czyli teraz.