Warunki

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania

Warunek (ang. condition) – jeden z podstawowych elementów Skript'a, służy do wykonania kodu, jeżeli gracz spełni odpowiednie warunki if. Warunków jest bardzo dużo, szczególnie w samym Skript'cie, dodatkowo istnieją addon'y dodające wiele nowych warunków. Warunki typu can hold, can build, can fly, can see muszą zostać spełnione przez gracza (tzn. musi mieć możliwość budowania, latania itp.) a jeżeli nie spełni warunku to można zastosować else / else if. Do warunków da się stosować negacje (cannot build, isn't edible, isn't burning, cannot see). "if" przed warunkiem piszemy opcjonalnie, ale dla jakości kodu najlepiej pisać.

command /setblock <material>:
    trigger:
        player cannot build at the targeted block:
            message "Nie możesz tutaj budować :|"
            stop
        else:
            set the targeted block to argument

Typy warunków

W skripcie możemy użyć trzech typów warunków:

Typ warunku Opis Przykład
Typ 1 Stosujemy tzw. wcięcie w kodzie po którym spełnia się kod if player has permission "admin":

[tab]add diamond to player

Typ 2 Możemy go użyć bez stosowania wcięcia przez co nie możemy postawić else,

nie piszemy if na początku oraz nie dajemy : na końcu

player has permission "admin"

add diamond to player

Typ 3 Piszemy if po napisaniu efektu, nie możemy wykonać else oraz nie dajemy : na końcu add diamond to player if player has permission "admin"
Typ 4 Warunki na podstawie przeczeń - zaprzeczamy warunek, a gdy jest spełniony to zatrzymujemy kod. if player doesn't have permission "admin":

[tab]stop

Lista warunków

Poniższa lista jest kompatybilna wraz z wersją Skript v2.4.

Lista warunków
Warunek Wydanie Opis Przykłady
can build Skript 2.0 Sprawdza, czy gracz może budować
player cannot build at the targeted block:
    cancel event
    send "Nie możesz tu budować!"
can fly Skript 2.3 Sprawdza, czy gracz może latać
player cannot fly at the player's location:
    disallow flight for player
can hold Skript 1.0 Sprawdza, czy gracz może trzymać przedmiot
if player is holding stick of unbreaking 10 named "&cAdmin-Tool":
    if player cannot hold stick of unbreaking 10 named "&cAdmin-Tool":
        remove player's tool from player's inventory
        drop player's tool at player
can see Skript 2.3 Sprawdza, czy gracz może widzieć innych graczy
if {vanish::%player%} is true:
    loop all players:
        if loop-player can see player:
            hide player from loop-player
chance Skript 1.0 Dodaje możliwość dodania prawdopodobieństwa wykonania kodu
chance of 0.25%:
    drop 1 of diamond at player
    send "Znalazłeś diament!"
comparison Skript 1.0 Porównuje liczby, bloki, byty i obiekty w świecie gry (zazwyczaj dwie podane liczby)
if {money::%player%} > 10000:
    give 1 of diamond sword of unbreaking 3, sharpness 5 and mending to player
else:
    send "Nie stać cię na to!"

on mine:
    time in the player's world < 8:00:
        send "Idź odpoczywać, a nie kopiesz!"

the clicked block is a stone slab or a double stone slab:
    send "Kliknąłeś na płytę kamienną :O"
contains Skript 1.0 Sprawdza, czy tekst, liczba lub skrzynia itp. zawiera litery/cyfry/przedmioty (i wiele więcej)
if {lista::*} contains "Linijka 1":
    send "Ta lista zawiera linijkę 1."

set {_var} to text from "https://wiki.skript.pl/Condition"
if {_var} contains "Condition":
    send "Ta strona opisuje chyba wszystkie conditiony!

player has 128 of cobblestone:
    send "Masz 2 staki bruku!"
damage cause Skript 2.0 Sprawdza, co było przyczyną obrażeń
damage was caused by lava:
    broadcast "%victim% próbował pływać w lawie :O"
event cancelled Skript 2.2-dev36 Sprawdza, czy wydarzenie zostało anulowane
on click:
    if event is cancelled:
        broadcast "Co ty odjaniepawlasz?"
exists / is set Skript 1.2 Sprawdza, czy obiekt istnieje / argument jest ustawiony itp.
if arg 1 isn't set:
    send "Poprawne użycie: /komenda <argument>"
has client weather Skript 2.3 Sprawdza, czy gracze mają niestandardową pogodę
if the player has custom weather:
    send "Twoja pogoda: %player's weather%"
has metadata Skript 2.2-dev36 Sprawdza, czy gracz ma metadatę
if player has metadata value "medyk":
    send "Jesteś medykiem"
has permission Skript 1.0 Sprawdza, czy gracz ma permisję
player has permission "admin.ban":
    ban player-argument due to text-argument
else:
    send "Lol, nie masz permisji do banowania"
has played before Skript 1.4 Sprawdza, czy gracz grał wcześniej
if player has played before:
    send "Witaj ponownie!"
else:
    send "Witaj tutaj pierwszy raz :O"
has resource pack Skript 2.4 Sprawdza, czy gracz ma resource-pack
if the player has a resource pack loaded:
    send "Używaj tą broń do woli :)"
else:
    remove player's tool from player's inventory
    drop player's tool at player
    send "Tego kałasznikowa nie możesz używać, bo nie masz resource-packa :("
has scoreboard tag Skript 2.3 Sprawdza, czy gracz ma włączoną tabelę (tą z prawej strony)
if player has the scoreboard tag "Test":
    send "Masz to włączone ;)"
else:
    remove player's tool from player's inventory
    drop player's tool at player
    send "Tego kałasznikowa nie możesz używać, bo nie masz resource-packa :("
is alive Skript 2.0 Sprawdza, czy byt żyje
if player is alive:
    send "Jeszcze tutaj jakimś cudem żyjesz"
else:
    send "Świeczki [*]"
is banned Skript 1.4 Sprawdza, czy gracz został zbanowany (Nota: Działa tylko na ten ban "bukkitowy")
if the player is banned:
    broadcast "%player% próbował dołączyć, ale ma bana. Znicze dla niego! [*]"
is block Skript 2.4 Sprawdza, czy przedmiot jest blokiem
player's held item is a block:
    set targeted block to player's tool
    remove player's tool from player's inventory
is blocking Skript 2.0 Sprawdza, czy gracz zablokował uderzenie/pocisk tarczą
on damage of player:
    victim is blocking
        damage attacker by 0.5 hearts
        send "A masz! Karma wraca"
is burning Skript 1.4.4 Sprawdza, czy gracz ma resource-pack
player is burning:
    player is holding diamond:
        add 1 to the player's health
        remove 1 of diamond from player's inventory
        send "Ten diament ci życie uratuje :)"
Lista warunków
Warunek Wydanie Opis Przykłady
is edible Skript 2.2-dev36 Sprawdza, czy przedmiot jest jadalny
if the player's tool is edible:
    send "Jak miło, można to zjeść"
is empty Skript 2.0 Sprawdza, czy coś jest puste (skrzynia, ekwipunek itp.)
player's inventory is empty:
    give 2304 of dirt to player
is enchanted Skript 1.4.6 Sprawdza, czy coś jest zaklęte
if the player's tool is enchanted with efficiency 3:
    set the targeted block to air
    drop 1 of obsidian at player
else:
    cancel event
    send "Nie możesz wykopać obsydianu bez Wydajności III"
is flammable Skript 2.2-dev36 Sprawdza, czy przedmiot może się zapalić
if wood is flammable:
    send "Uważaj, ta deska może się zapalić od ognia :)"
is flying Skript 1.4.4 Sprawdza, czy gracz lata
if the player is flying:
    disallow flight for player
is holding Skript 1.0 Sprawdza, czy gracz trzyma przedmiot w ekwipunku
if the player is holding a blaze rod of unbreaking 10 named "Róg mocy":
    create fake explosion at targeted block
is member / owner of region Skript 2.1 Sprawdza, czy gracz jest członkiem / właścicielem regionu
on region enter:
    if player is the owner of the region:
        message "Witaj w swoim domu ponownie, %player%!"
        send "%player% zawitał w %region%!" to all members of the region
is of type Skript 1.4 Sprawdza, jakim typem jest byt/obiekt/blok
victim is of type {villager type}:
    send "Czemu bijesz wieśniaków?"
is on ground Skript 2.2-dev26 Sprawdza, czy byt znajduje się na ziemi
if player isn't on ground:
    push player down at speed 10
is online Skript 1.4 Sprawdza, czy gracz jest w grze
if arg-1 is online:
    kick arg-1 due to arg-2
else:
    send "%player% nie jest online!"
is poisoned Skript 1.4.4 Sprawdza, czy byt jest zatruty
if player is poisoned:
    apply regeneration to player
is riding Skript 2.0 Sprawdza, czy byt ujeżdza inne zwierzę/jest w pojeździe (łódka, wagonik)
player is riding a saddled pig:
    send "Chrum, chrum!"
is script loaded Skript 2.2-dev31 Sprawdza, czy skrypt został załadowany
if script "przyklad.sk" is loaded:
    send "Już ten skrypt jest załadowany!" to console
is sleeping Skript 1.4.4 Sprawdza, czy gracz śpi
if player is sleeping:
    chance of 50%:
        drop 1 of ghast tear named "Ząb" at player
is slime chunk Skript 2.3 Sprawdza, czy gracz znajduje się na chunku "szlamowym" (tzn. czy tam szlamy się odradzają)
if chunk at player is a slime chunk:
    send "Znajdujesz się na chunku szlamowym!"
else:
    send "To nie jest tu!"
is sneaking / sprinting Skript 1.4.4 Sprawdza, czy gracz skrada się / sprintuje
if player is sneaking:
    send "Teraz masz być cicho!"
is solid Skript 2.2-dev36 Sprawdza, czy przedmiot/blok jest solidny
if grass block is solid:
    send "Bądź spokojny, nie spadniesz"
is swimming Skript 2.3 Sprawdza, czy gracz/byt pływa
if player is swimming:
    apply water breathing to player
is transparent Skript 2.2-dev36 Sprawdza, czy przedmiot jest przezroczysty
if glass is transparent:
    send "Czy wiedziałeś, że przez szkło można widzieć?"
is wearing Skript 1.0 Sprawdza, czy gracz nosi zbroję
player is wearing all diamond armour:
   set max health of player to 30
is PvP Skript 1.3.4 Sprawdza, czy PvP jest włączone/wyłączone na świecie
PvP is disabled in "world":
    send "PvP jest tutaj wyłączone!"
region contains Skript 2.1 Sprawdza, czy region coś zawiera
on region enter:
    region contains {flags.%world%.red}
    message "Czerwona flaga jest blisko!"
resource pack Skript 2.4 Sprawdza, czy gracz odpowiedział na pozwolenie do pobrania resource-pack'a
on resource pack response:
    if the resource pack wasn't accepted:
        kick the player due to "Aby tu grać, musisz zainstalować resource-pack!"
starts / ends with Skript 2.2-dev36 Sprawdza, czy przedmiot jest przezroczysty
if glass is transparent:
    send "Czy wiedziałeś, że przez szkło można widzieć?"
weather Skript 1.0 Sprawdza pogodę na świecie
if is raining in "world" or "lobby":
    send "Pada!"
time Skript 2.0 Sprawdza różnicę %now% (teraz czasu realnego) i np. czasu użycia komendy
{command::%player's uuid%::last-usage} was less than a minute ago:
message "Zaczekaj minutę zanim użyjesz tej komendy ponownie :)"
stop
    set {command::%player's uuid%::last-usage} to now