Otwórz menu główne

Odstępy czasowe

Wersja z dnia 20:28, 27 paź 2019 autorstwa 3meraldK (dyskusja | edycje) (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...")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

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.

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.