-
Ilość zawartości
1471 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
40
Treść opublikowana przez PanMaruda
-
Tak: https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html zmiennej zapisuje się w klamrach, np {jakaśZmienna} Listę obiektów, jakie zmienne ze skripta obsługują znajdziesz w zakładce "types" w każdej dokumentacji, np. Tutaj. https://skriptlang.github.io/Skript/classes.html Rozpoczęcie zmiennej od znaku _ oznacza że jest lokalna i jest używana tylko w danym evencie danego skryptu, gdy kod się skończy, to ta zmienna zostanie wykasowana, np. #podczas kliknięcia prawym przyciskiem tworzymy zmienną z nickiem gracza i wyświetlamy na chacie. on rightclick: set {_zmiennaLokalna} to name of player broadcast "%{_zmiennaLokalna}%" #jeżeli teraz stworzymy kolejne wydarzenie, to powyższa zmienna nie będzie istnieć i wyświetli się <none> (NULL) on leftclick: send "%{_zmiennaLokalna}%" Zapisując zmienne w procentach możemy ich zawartość umieszczać w tekscie (tak jak powyżej w przykładzie) podwojony dwukropek oddziela główną zmienną od jej 'podzmiennych' - zupełnie jak w yaml - każdy dwukropek to następne wcięcie, np. zmienna {jakaś::zmienna::test} = "test" mogłaby w yaml wyglądać tak: jakaś: zmienna: test: 'test' Dodając na końcu zmiennej ::* definiujemy ją jako listę obiektów {_lista::*} listy z wartościami można brać w pętlę i działać na ich wartościach - indeksie oraz wartości set {_lista::*} to "pierwsza wartość zmiennej", "druga wartość zmiennej", "i tak dalej" and "ostatnia wiadomosc" loop {_lista::*}: #listy domyślnie indeksowane są od 1 w górę i zawierają jakby 'ukrytą pod gwiazdką' nazwę zmiennej #czyli ta lista tak naprawdę to zbiór zwykłych zmiennych zapisanych jako {_lista::1}, {_lista::2} i tak dalej #zatem w pętli loop-index zwróci nam tą 1, 2, 3, z kolei loop-value - wartość tej zmiennej broadcast loop-index broadcast loop-value #ta linijka jest jednoznaczną z tym: broadcast {_lista::%loop-index%} broadcast " " zmienne można tworzyć. dodawać, odejmować, kasować, łączyć i setki innych akcji Listę gotowych zmiennych znajdziesz zawsze w zakładce "expressions" w każdej dokumentacji, np. https://skriptlang.github.io/Skript/expressions.html Trzeba pobrać odpowiedni dodatek który będzie obsługiwał pliki konfigurancyjne. Listę znajdziesz tutaj: https://skripttools.net/documentation?q=yaml Na taką jaką uważasz za słuszną. Ale im nowsza tym mniej dodatków do Skripta potrzeba, a im starsza tym trudniej o wsparcie i aktualizacje.
-
Ma to do skryptu tyle że wersja 1.8.8 została porzucona jakieś 5 lat temu i żaden szanujący się plugin jej nie wspiera, a już w szczególności najnowszy Skript czy SkQuery.
-
on command: if sender is not console: if the command is "cuboid": if {uzycTylkoRaz::%player%} is not set: set {uzycTylkoRaz::%player%} to "UżytoTylkoRaz" make the console execute the command "ps give %player%" Zakładając że masz włączony zapis zmiennych.
-
Zainwestuj w normalny serwer, a nie jakiegoś dziada z hostingu, znajdź osobę, która odpowiednio zadba o te skrypty oraz cały serwer i nie będzie żadnego problemu. A jako przykład mogę ci podać gc2. Gdzieś w odległej przeszłości wypuścili edycję skyblocka. Ze skryptami. Z tego co pamiętam to nawet ze sporą ilością skryptów. I przypuszczam że nadal tam są, i działa. Gra na tym trybie jednocześnie po kilkadziesiąt graczy. Na skryptach. I serwer żyje. A tak na koniec chciałbym ci powiedzieć że brniesz w offtopic i zaraz mogą warny polecieć.
-
Ja cię proszę pisz po polsku. Spigot to lepsza wersja bukkita, a paper to lepsza wersja spigota. Jeżeli chodzi o jakieś inne błędy to polecam zabezpieczyć serwer odpowiednimi permisjami i pluginami. Ostatnia wersja Skript ma 1.12.2 to chyba 2.3 była. Gówniany plugin będzie taki sam jak gówniany skrypt. Różnica jest taka że większość zarąbistych techników nie jest w stanie napisać pluginu, a jedynie zedytować jakiś marny skrypt z neta. Najczęściej stąd się bierze taka opinia o skryptach. Ot co.
-
command /kupRange [<text>]: trigger: if balance of player >= 10000: remove 10000 from balance of player make the console execute the command "pex user %player% group set Vip" send "kupiłeś range Vip" to player else: send "nie masz 10000 kasy" to player command /skrypt-na-sklep [<text>]: trigger: open virtual chest inventory with 1 row to player make gui slot 4 of player with stone to close then run player command "kupRange" Pewnie nie masz też TuSKe zainstalowanego.
-
command /list: permission: online.list permission message: &4Nie masz dostepu! trigger: send "&6osob online na serwerze jest: (%size of online players%)/100
-
"%now%" A to w jakim formacie wyświetla się ta zmienna, możesz sobie ustalić w konfiguracji skripta (date format)
-
Ja tylko chciałbym powiedzieć że zmienne zapisuje się z podwojonym dwukropkiem, a nie kropką: {lpborder.start} ---> {lpborder::start} A tak poza tym to skrypt jest dobrze napisany, nie ma się więcej do czego przyczepić, gratuluję.
-
command /kupRange [<text>]: if balance of {player >= 10000: remove 10000 from balance of player make the console execute the command "pex user %player% group set Vip" send "kupiłeś range Vip" to player else: send "nie masz 10000 kasy" to player command /skrypt-na-sklep [<text>]: trigger: open virtual chest inventory with 1 row to player make gui slot 4 of player with stone to close then run player command "kupRange"
-
Jak robisz pętlę z odliczaniem, to musisz sprawdzać czy przedmiot w ręce zgadza się z danym przedmiotem. loop coś tam: if tool of player is wooden hoe named "cos tam": #teraz dopiero action bar send action bar #a opóźnienie tutaj: wait second
-
on plate: wait tick delete event-block on plate: send "Nacisnąłeś na płyte naciskową"
-
command /administracja [<player>]: trigger: open virtual hopper named "sprawdzaj" to player if ("Kurczaeq123" parsed as offline player) is online: format slot 0 of player with ("Kurczaeq123" parsed as offline player)'s skull named "&4&l★ &cWlasciciel &7- &fkasdasd &4&l★" with lore "&7Aktywny - &a&l✔" to be unstealable else: format slot 0 of player with ("Kurczaeq123" parsed as offline player)'s skull named "&4&l★ &cWlasciciel &7- &fkasdasd &4&l★" with lore "&7Nieaktywny - &c&l✘" to be unstealable
-
function kupRange(p: player): if balance of {_p} >= 10000: remove 10000 from balance of {_p} make the console execute the command "pex user %{_p}% group set Vip" send "kupiłeś range Vip" to {_p} else: send "nie masz 10000 kasy" to {_p} command /skrypt-na-sklep [<text>]: trigger: open virtual chest inventory with 1 row to player make gui slot 4 of player with stone to close then run function kupRange(player) Wymaga Skripta 2.2+ oraz TuSKe
-
set {_item} to 64 of diamond set {_slot} to random integer between 0 and 8 format slot {_slot} of player with {_item} to be unstealable
-
options: x-min: -3000 x-max: 3000 z-min: -3000 z-max: 3000 world: drugi swiat on right click: if clicked block is stone button: if block behind clicked block is sponge: set {_x} to random integer between {@x-min} and {@x-max} set {_y} to 256 set {_z} to random integer between {@z-min} and {@z-max} set {_location} to location at {_x}, {_y}, {_z} in world ("{@world}" parsed as world) set {randomtp.god.%player%} to true teleport player to {_location} send " &8» &7Zostales przeteleportowany na losowe kordy." stop on damage: if victim is player: if {randomtp.god.%victim%} is true: cancel event delete {randomtp.god.%victim%} stop
-
Szczerze to nie chce mi się czytać prezentacji ani sprawdzać co ten kod dokładnie robi. Odniosę się tylko do tego co mnie w nim razi i powinno być poprawione: Nie potrzeba (ba! nawet nie można dawać) opóźnienia przy tworzeniu GUI, to tylko pozostałość po dawno nieużywanym format slocie ze SkQuery. Aktualnie jedyne co osiągasz to wolniejsze ładowanie GUI: wait 2 ticks open chest with 6 rows named "&cZarządzanie serwerem 1/2" to player wait 2 ticks Robisz podwójne warunki w miejscu gdzie możesz po prostu użyć else (o którego istnieniu widzę że nie nawet nie wiesz). Dajemy go pod dowolnym warunkiem i jeżeli ten warunek nie jest spełniony to wykona się kod z else, przykładowo: #jeżeli nick gracza to maruda, powita gracza, a jeżeli nie to wykona się kod po else i wyświetli wiadomość że nie jesteś maruda. if name of player is "Maruda": send "Cześć Maruda" else: send "Nie jesteś Marudą" Więc odnosząc się do twojej pracy - tworzenie GUI jest zrobione niepoprawnie. Else powoduje że zmienna nie jest sprawdzana dwa razy, ale jedynie raz. Oszczędzasz sobie procesor, mniejsze lagi itd. Czyli wstawianie itemków nie powinno wyglądać w ten sposób: if {plugins} is true: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" #(jakieś kilkanaście linijek kodu) if {plugins} is false: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &cWYŁĄCZONE" Tylko tak: if {plugins} is true: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" else: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &cWYŁĄCZONE" Nie powielaj eventów, zapisuj wszystko w jednym i wtedy sprawdzaj różnice (itemy, sloty, itd.) on place beacon: if {beacon} is false: cancel event on place tnt: if {tnt} is false: cancel event on place bedrock: if {bedrock} is false: cancel event Ten kod powinien wyglądać tak: on place: if event-block is beacon: if {beacon} is false: cancel event if even-block is tnt: if {tnt} is false: cancel event if event-block is bedrock: if {bedrock} is false: cancel event A nawet tak, o ile użyjemy listy: on place: if event-block is beacon or tnt or bedrock: if {%event-block%} is false: cancel event Jeżeli chcesz żeby każdy item w inventory był zablokowany to nie musisz wpisywać wszędzie cancel event, wystarczy to zrobić raz: if inventory name of current inventory of player is "&cZarządzanie serwerem 1/2": if clicked slot is 8 or 0 or 45 or 53: cancel event if clicked slot is 53: cancel event close player's inventory execute player command "commands" #(i tak dalej) if inventory name of current inventory of player is "&cZarządzanie serwerem 1/2": cancel event if clicked slot is 53: close player's inventory execute player command "commands" #(i tak dalej tylko już bez przerywania eventu) Jeżeli chcesz trochę bardziej zabezpieczyć GUI przed bugowaniem to polecam najpierw stworzyć wszystkie itemki i ekwipunek w zmiennej a dopiero potem otwierać ją graczowi, np. w ten sposób: #ustawiasz zmienną jako skrzynke set {_jakiesGUI} to chest with 6 rows named "test" #formatujesz sloty w zmiennej set slot 31 of {_jakiesGUI} to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" set slot 0 of {_jakiesGUI} to 13 of diamond #i tak dalej #i na sam koniec tylko otwierasz tą zmienną graczowi: open {_jakiesGUI} to player
-
Problem z skryptem na logowanie
PanMaruda odpowiedział(a) na isupermichael pytanie w Pytania i problemy
Nie ma i nie będzie. Na przyszłość takie rzeczy jak wersja serwera, silnik i wersja skripta też warto pisać. Zainstaluj SkUtilities i użyj tego kodu, polecam też zmienić plik na .txt (.yml to pliki konfiguracyjne, raczej nie służą do przechowywania logów) on join: set {_} to (line count of file "plugins/Skript/scripts/Folder/config.yml") + 1 write "Gracz: %player% Godzina: %now% Wejscie" at line {_} to file "plugins/Skript/scripts/Folder/config.yml on quit: set {_} to (line count of file "plugins/Skript/scripts/Folder/config.yml") + 1 write "Gracz: %player% Godzina: %now% Wyscie" at line {_} to file "plugins/Skript/scripts/Folder/config.yml" -
Problem z skryptem na logowanie
PanMaruda odpowiedział(a) na isupermichael pytanie w Pytania i problemy
No proszę, a jednak coś się znalazło. Tak na przyszłość powiem ci że powinieneś według regulaminu umieścić błędy od razu w pierwszej wiadomości i nikt nie powinien ci tego wypominać. Wgraj WildSkripta. -
Problem z skryptem na logowanie
PanMaruda odpowiedział(a) na isupermichael pytanie w Pytania i problemy
No patrz, bardzo dziwne, nie? A może jakieś błędy ci plugin wysyła i strasznie zaśmiecają ci chat i może chciałbyś się nimi tutaj podzielić? -
Problem z skryptem na logowanie
PanMaruda odpowiedział(a) na isupermichael pytanie w Pytania i problemy
Kurczę, dziwne nie? Też się zastanawiam dlaczego... Od teraz możemy zastanawiać się razem. Ale ogólnie jak go pisałeś to chyba czytałeś też dokumentację i wiesz dokładnie co jest potrzebne do którego efektu, warunku i wyrażenia, czyż nie? -
Kod wersja serwera silnik wersja skripta
- 3 odpowiedzi
-
- on rightclick
- problem
-
(i 3 więcej)
Oznaczone tagami:
-
command /repair [<text>]: trigger: if level of player >= 30: repair player's tool remove 30 from level of player send "&aNaprawiono! :D" else: send "&cNie masz 30 poziomu."
-
command /komenda [<text>]: cooldown: 1 minute cooldown message: Tej komendy użyjesz tylko raz na minutę, pozostało %remaining time%. trigger: send "Twoja wiadomość co minutę%"
-
clicked block a nie target block :__:
- 3 odpowiedzi
-
- on rightclick
- problem
-
(i 3 więcej)
Oznaczone tagami:
