Otwórz menu główne

Zmiany

Pętle

Dodane 277 bajtów, 19:16, 27 paź 2019
m
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.
*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:
* takie, które pętlują fizyczne rzeczy w grze, np. bloki, graczy
* takie, które loopują kod określoną ilość razy
*Takie, które powtarzają kod podaną ilość razy.*Takie, które powtórzą wszystkie wartości listy. === Zapętlające obiekty === Pętla '''loop''' może loopować wszystkie skriptowe typy np: * Graczy* Itemy* Teksty* Liczby* Bloki
Pętla W takich pętlach zapętlony obiekt jest określany zawsze '''loop-value''' może loopować* graczy* bloki* bloki, które zostały zniszczone przez eksplozję* graczy ona jego indeks jako '''loop-line* wartości* indeksy* ekwipunki* światy* bytyindex''' ale można używać (zależnie od typu obiektów w liście) np:
W takich pętlach zapętlony obiekt jest teraz określany jako * '''loop-playernumber,''' gdy zapętlane wartości są liczbami.* '''loop-integer, ''' gdy zapętlane wartości są liczbami całkowitymi.* '''loop-indexplayer,''' gdy zapętlana wartość jest graczem.* '''loop-block, ''' gdy zapętlana wartość jest blokiem.* '''loop-entityitem,'' itp' gdy zapętlana wartość jest przedmiotem.
Przykład takiej Przykłady takich pętli:<pre>on projectile hitcommand /liczby [<text>]: if {gasnica::%projectile%} is truetrigger: loop blocks in radius 4 around projectile(0.2, 0.12, 2, 3, 12 and 2): if loop-block is fire send "Liczba: set %loop-block to air number%"</pre><pre> delete {gasnicacommand /itemy [<text>]: trigger:%projectile%} loop players all items in radius 4 around projectileplayer's inventory: extinguish send "%loop-playeritem%"</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).
40
edycji