40
edycji
Zmiany
Przejdź do nawigacji
Przejdź do wyszukiwania
m
* skończone, wykonujące kod określoną liczbę razy
* nieskończone, wykonujące kod przez cały czas działania skryptu.
* takie, które pętlują fizyczne rzeczy w grze, np. bloki, graczy
* takie, które loopują kod określoną ilość razy
=== Zapętlające obiekty ===*Takie, które powtarzają kod podaną ilość razy.*Takie, które powtórzą wszystkie wartości listy.
Pętla '''loop''' może loopować* graczy* bloki* bloki, które zostały zniszczone przez eksplozję* graczy on-line* wartości* indeksy* ekwipunki* światy* byty===Zapętlające obiekty===
W takich pętlach zapętlony obiekt jest teraz określany jako Pętla ''loop-player'', ''loop-index'', ''loop-entity'' itp.może loopować wszystkie skriptowe typy np:
Przykład takiej pętli:* Graczy<pre>on projectile hit:* Itemy if {gasnica::%projectile%} is true:* Teksty loop blocks in radius 4 around projectile:* Liczby if loop-block is fire: set loop-block to air delete {gasnica::%projectile%} loop players in radius 4 around projectile: extinguish loop-player</pre>* Bloki
brak opisu edycji
'''Pętle''' umożliwiają cykliczne wykonywanie kodu określoną liczbę razy, do momentu zajścia pewnych warunków lub w nieskończoność. '''Skript''' umożliwia pętlowanie wybranych bloków, wartości, graczy, liczb lub pozwala na loopowanie kodu określoną ilość razy. Pętle dzielimy na dwie grupy:
*Skończone, wykonujące kod określoną liczbę razy*Nieskończone, wykonujące kod przez cały czas działania skryptu.*Warunkowe, wykonujące kod, dopóki podany warunek będzie spełniony. == pętla Pętla while ==Pętla '''while''' jest wykonywana w nieskończoność dopóki warunki się zgadzająwarunek jest prawdziwy (zwróci true).
<pre>on script load:
while true1 is 1: broadcast "Nie zapomnij dodać ""wait 10 minutes"" :)"
wait 10 minutes</pre>
Kiedy skrypt zostanie wczytany pętla while zostaje uruchomiona, ponieważ ''while true'' zawsze się zgadza. Wtedy co 10 minut zostaje ogłoszona wiadomość.
== pętla Pętla loop ==
Pętle loop można podzielić na dwie kategorie:
W takich pętlach zapętlony obiekt jest określany zawsze '''loop-value''', a jego indeks jako '''loop-index''' ale można używać (zależnie od typu obiektów w liście) np: * '''loop-number,''' gdy zapętlane wartości są liczbami.* '''loop-integer,''' gdy zapętlane wartości są liczbami całkowitymi.* '''loop-player,''' gdy zapętlana wartość jest graczem.* '''loop-block,''' gdy zapętlana wartość jest blokiem.* '''loop-item,''' gdy zapętlana wartość jest przedmiotem. Przykłady takich pętli:<pre>command /liczby [<text>]: trigger: loop (0.2, 0.12, 2, 3, 12 and 2): send "Liczba: %loop-number%"</pre><pre>command /itemy [<text>]: trigger: loop all items in player's inventory: send "%loop-item%"</pre> === Inne pętle loop ===
Kody można zapętlać określoną liczbę razy, np:
<pre>set {_a} to 0loop 30 times: add 1 to {_a} broadcast {_a}loop-number</pre>
== periodical Periodical==
Pętle te są nieskończone i wykonują się co pewien czas, określany przez ''timespan''. Mimo skuteczności wcale nie są polecane, ponieważ mogą obciążać serwer, jeżeli ''periodical'' jest co ''1 tick'' i zapętla wszystkich graczy (zakładając, że gra ich dużo).
else if {_msg} is 3:
broadcast coloured {@msg3}</pre>
[[Kategoria: Skript]]