Odstępy czasowe: Różnice pomiędzy wersjami
(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 (3meraldK przeniósł stronę Ograniczenia częstotliwości do Odstępy czasowe: normalne spolszczenie ?xD) |
||
| (Nie pokazano 5 wersji utworzonych przez 3 użytkowników) | |||
| 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 [[ | + | 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]]. Można również pomóc sobie skryptem [https://skript.pl/temat/34625-axcooldown-zarz%C4%85dzanie-cooldownem/ AxCooldown] który służy do zarządzania cooldownem autorstwa [[Użytkownik:XAxee|xAxee]]. |
| − | == Cooldown == | + | ==Cooldown w kodzie== |
Na początku należy napisać, co ma wywoływać kod. Przykład rzucanego TNT z cooldownem: | Na początku należy napisać, co ma wywoływać kod. Przykład rzucanego TNT z cooldownem: | ||
<pre>on rightclick on tnt: | <pre>on rightclick on tnt: | ||
| Linia 7: | Linia 7: | ||
[[Zdarzenia|Zdarzenie]] ''on rightclick:'' wywołuje się wtedy, kiedy gracz naciśnie prawy przycisk myszy. Skript sprawdza, czy gracz trzyma ''TNT'' o nazwie ''&cRzucane TNT''. | [[Zdarzenia|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: | Teraz należy użyć dwóch zmiennych: | ||
| − | * zmiennej tymczasowej | + | |
| − | * zmiennej przypisanej do gracza | + | *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. | 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. | ||
<pre>set {_czas} to difference between {tntrzut::%player%} and now | <pre>set {_czas} to difference between {tntrzut::%player%} and now | ||
| Linia 18: | Linia 20: | ||
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. | 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. | ||
| + | == Cooldown w komendzie == | ||
| + | Skript od pewnej wersji posiada wspomaganie do cooldownów w komendach. Aby go użyć, starczy dodać w sekcji komendy '''cooldown: <timespan>''' możemy również użyć '''cooldown message: <text>''', które wyświetli wiadomość, gdy cooldown nie minął. | ||
| + | |||
| + | np:<pre> | ||
| + | command /prezent [<text>]: | ||
| + | cooldown: 1 day | ||
| + | cooldown message: Jeszcze nie mozesz uzyc tej komendy | ||
| + | trigger: | ||
| + | add (diamond or iron ingot or gold ingot) to player | ||
| + | send "&7Odebrano" | ||
| + | </pre><br /> | ||
| + | |||
| + | == AxCooldown - Opis funkcji == | ||
| + | Skrypt posiada wiele funkcji które ułatwiaja korzystanie z cooldownu. Wszystkie funkcje: | ||
| + | {| class="wikitable" | ||
| + | |+ | ||
| + | !Funkcjia | ||
| + | !Opis | ||
| + | !Typ zwracanej wartości | ||
| + | !Przykład zwracanej wartości | ||
| + | |- | ||
| + | |<code>createCooldown(%string%, %time span%)</code> | ||
| + | |Tworzy cooldown | ||
| + | | --- | ||
| + | | --- | ||
| + | |- | ||
| + | |<code>deleteCooldown(%string%)</code> | ||
| + | |Usuwa cooldown | ||
| + | | --- | ||
| + | | --- | ||
| + | |- | ||
| + | |<code>setCooldown(%player%, %boolean%)</code> | ||
| + | |Ustawia graczowi cooldown na true / false | ||
| + | | --- | ||
| + | | --- | ||
| + | |- | ||
| + | |<code>getCooldown(%player%, %string%)</code> | ||
| + | |Zwraca czy cooldown gracza już minął | ||
| + | |boolean | ||
| + | |<code>'''true'''</code> | ||
| + | |- | ||
| + | |<code>getCooldownBoolean(%player%, %string%)</code> | ||
| + | |Zwraca czy cooldown gracza już minął | ||
| + | |boolean | ||
| + | |<code>'''true'''</code> | ||
| + | |- | ||
| + | |<code>getCooldownDate(%player%, %string%)</code> | ||
| + | |Zwraca date wygaśnięcia cooldownu | ||
| + | |date | ||
| + | |<code>'''28.12.19 15:00'''</code> | ||
| + | |- | ||
| + | |<code>getCooldownTime(%player%, %string%)</code> | ||
| + | |Zwraca czas wygaśnięcia cooldownu | ||
| + | |time span | ||
| + | |<code>'''12 second'''</code> | ||
| + | |- | ||
| + | |<code>getCooldownText(%player%, %string%)</code> | ||
| + | |Zwraca przetłumaczony czas wygaśnięcia cooldownu | ||
| + | |Text | ||
| + | |<code>'''12 sekund'''</code> | ||
| + | |} | ||
| + | |||
| + | == AxCooldown - Wykorzystanie == | ||
| + | |||
| + | === Wzór ogólny: === | ||
| + | <pre> | ||
| + | on load: | ||
| + | createCooldown(<cooldown name>, <time>) | ||
| + | <zdarzenie/komenda/interwał>: | ||
| + | if getCooldown(<player>, <cooldown name>) is true: | ||
| + | setCooldown(<player>, <cooldown name>) | ||
| + | #kod | ||
| + | else: | ||
| + | send getCooldownText(<player>, <cooldown name>) | ||
| + | </pre> | ||
| + | |||
| + | === Przykład i opisanie === | ||
| + | Napoczątku musimy stworzyć nasz cooldown, najlepiej w evencie '''on load:''' | ||
| + | <pre>on load: | ||
| + | createCooldown("Komendy", 3 second)</pre>Nastepnie w naszym kodzie musimy sprawdzić czy Cooldown juz minął:</pre> | ||
| + | <pre>on command: | ||
| + | if getCooldown(player, "Komendy") is true:</pre> | ||
| + | Następnie ustawiamy cooldown gracza, i wysyłamy wiadomość gdy nasza funkcja zwróciła wartość '''false''' | ||
| + | <pre>on command: | ||
| + | if getCooldown(player, "Komendy") is true: | ||
| + | setCooldown(player, "Komendy") | ||
| + | else: | ||
| + | cancel event | ||
| + | send "&7Nie mozesz uzyc jeszcze komendy przez: &c%getCooldownText(player, "Komendy")"%"</pre> | ||
| + | Całość powinna wyglądać tak: | ||
| + | <pre>on load: | ||
| + | createCooldown("Komendy", 5 second) | ||
| + | on command: | ||
| + | if getCooldown(player, "Komendy") is true: | ||
| + | setCooldown(player, "Komendy") | ||
| + | else: | ||
| + | cancel event | ||
| + | send "&7Nie mozesz uzyc jeszcze komendy przez: &c%getCooldownText(player, "Komendy")"%"</pre> | ||
[[Kategoria:Skript]] | [[Kategoria:Skript]] | ||
Aktualna wersja na dzień 22:09, 2 lis 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. Można również pomóc sobie skryptem AxCooldown który służy do zarządzania cooldownem autorstwa xAxee.
Spis treści
Cooldown w kodzie
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.
Cooldown w komendzie
Skript od pewnej wersji posiada wspomaganie do cooldownów w komendach. Aby go użyć, starczy dodać w sekcji komendy cooldown: <timespan> możemy również użyć cooldown message: <text>, które wyświetli wiadomość, gdy cooldown nie minął.
np:
command /prezent [<text>]: cooldown: 1 day cooldown message: Jeszcze nie mozesz uzyc tej komendy trigger: add (diamond or iron ingot or gold ingot) to player send "&7Odebrano"
AxCooldown - Opis funkcji
Skrypt posiada wiele funkcji które ułatwiaja korzystanie z cooldownu. Wszystkie funkcje:
| Funkcjia | Opis | Typ zwracanej wartości | Przykład zwracanej wartości |
|---|---|---|---|
createCooldown(%string%, %time span%)
|
Tworzy cooldown | --- | --- |
deleteCooldown(%string%)
|
Usuwa cooldown | --- | --- |
setCooldown(%player%, %boolean%)
|
Ustawia graczowi cooldown na true / false | --- | --- |
getCooldown(%player%, %string%)
|
Zwraca czy cooldown gracza już minął | boolean | true
|
getCooldownBoolean(%player%, %string%)
|
Zwraca czy cooldown gracza już minął | boolean | true
|
getCooldownDate(%player%, %string%)
|
Zwraca date wygaśnięcia cooldownu | date | 28.12.19 15:00
|
getCooldownTime(%player%, %string%)
|
Zwraca czas wygaśnięcia cooldownu | time span | 12 second
|
getCooldownText(%player%, %string%)
|
Zwraca przetłumaczony czas wygaśnięcia cooldownu | Text | 12 sekund
|
AxCooldown - Wykorzystanie
Wzór ogólny:
on load:
createCooldown(<cooldown name>, <time>)
<zdarzenie/komenda/interwał>:
if getCooldown(<player>, <cooldown name>) is true:
setCooldown(<player>, <cooldown name>)
#kod
else:
send getCooldownText(<player>, <cooldown name>)
Przykład i opisanie
Napoczątku musimy stworzyć nasz cooldown, najlepiej w evencie on load:
on load:
createCooldown("Komendy", 3 second)Nastepnie w naszym kodzie musimy sprawdzić czy Cooldown juz minął:
on command:
if getCooldown(player, "Komendy") is true:
Następnie ustawiamy cooldown gracza, i wysyłamy wiadomość gdy nasza funkcja zwróciła wartość false
on command:
if getCooldown(player, "Komendy") is true:
setCooldown(player, "Komendy")
else:
cancel event
send "&7Nie mozesz uzyc jeszcze komendy przez: &c%getCooldownText(player, "Komendy")"%"
Całość powinna wyglądać tak:
on load:
createCooldown("Komendy", 5 second)
on command:
if getCooldown(player, "Komendy") is true:
setCooldown(player, "Komendy")
else:
cancel event
send "&7Nie mozesz uzyc jeszcze komendy przez: &c%getCooldownText(player, "Komendy")"%"