-
Ilość zawartości
1686 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
106
Treść opublikowana przez knugi
-
@Kraftowy co masz na myśli?
-
Hejka! Miło mi, że czytasz mój pierwszy poradnik dotyczący pięknego pluginu Skript. Zatem usiądź wygodnie i miłego czytania. Co to "parsed"? Słowo parsed według mojego rozumowania to jest użycie siły brutalnej w skrypcie by tekst zaimplementować np na liczbę. To jest tylko mały przykład. Kiedy używamy? Używamy tego, gdy musimy przekonwertować zmienną (tekst) do jakiegoś typu. Przykład? Mamy listę graczy w GUI, którą otwieramy komendą /gracze. command /gracze: trigger: open chest with 6 rows named "Gracze Online" to players wait 2 tick set {_i} to 0 loop all players: if {_i} is smaller than 53: set player's current inventory's slot {_i} to paper named "%player%" add 1 to {_i} else: exit stop Załóżmy, że chcemy danego gracza wyrzucić z serwera, jeżeli mamy do tego uprawnienia. on inventory click: if "%inventory name of player's current inventory%" is "Gracze Online": if slot is smaller than 0: stop cancel event if player's current inventory's slot slot is paper: if player has permission "wyrzuc.gracza": set {_player} to name of player's current inventory's slot slot kick {_player} due to "&6Zostales wyrzucony z serwera" send "&6Wyrzuciles gracza %{_player}% z serwera." stop stop Kod jak kod. Lecz danego gracza nie wyrzuci z serwera, bo w dokumentacji skript jest coś takiego: kick %players% [(by reason of|because [of]|on account of|due to) %text%] mamy "kick PLAYER" a nasza zmienna {_player} jest aktualnie text'em. więc musimy nasz tekst przekonwertować na playera. A jak to zrobić? Prosta sprawdza zmieniamy daną linijkę na taką: set {_player} to name of player's current inventory's slot slot parsed as player I nasz kod zaczął działać. Kolejny przykład? Nie ma sprawy! Chcemy zenchantować nasz item w ręce na wydajność z losową liczbą. Pewnie większość z was by tak zrobiła: command /test: trigger: enchant player's tool with efficiency random integer between 1 and 5 I reload wywala błąd. I teraz główkowanie co zrobiłem źle? Otóż w skript jest takie coś: enchant %~item stack% with %enchantment types% podaliśmy item stack jako player's tool lecz skript nie uznał naszego enchantment types i dlatego musimy jakoś przekonwertować dany kod. Kolejna prosta sprawa która wygląda mniej więcej tak: command /test: trigger: set {_ench} to "efficiency %random integer between 1 and 5%" parsed as enchantment type enchant player's tool with {_ench} Zrobiliśmy zmienną tymczasową która posiada w sobie tekst, który jest następnie konwertowany na enchantment type, który już effect enchant przyjmie jako prawidłowy Lista parsedów: W dokumentacji skryptu jasno jest napisane: text% parsed as (%*type%|"<.*>") Czyli text możemy zaimplementować na dowolny typ. Wszystkie typy można znaleźć również w dokumentacji, ale jak już o to prosicie to proszę: Życzę udanych skryptów i pozytywnych opinii ! Pozdrawiam #Knugi
-
Item po kliknieciu prawym daje pieniadze
knugi odpowiedział(a) na kapirogal pytanie w Pytania i problemy
To sprawdź czy warunek dobrze przechodzi. Przed add 500 to player's balance daj send "Wyslano" i wtedy napisz czy dziala. Jak nie to masz zły name itemu. -
Item po kliknieciu prawym daje pieniadze
knugi odpowiedział(a) na kapirogal pytanie w Pytania i problemy
Masz vault i jakiś essentials ? -
Item po kliknieciu prawym daje pieniadze
knugi odpowiedział(a) na kapirogal pytanie w Pytania i problemy
Tylko po co execute jak jest effect od tego? on rightclick with paper: if name of player's tool is "&eBon_na_&a500$": add 500 to player's balance -
Ouhhh kolega dobrze myślał, tylko że znów jest [ciach] błąd skriptu i nie usuwa tego efektu Ale spokojnie knugi sobie z tym poradził Łapaj póki ciepłe on place of stone:#endercrystal: if name of player's tool is "OslonaCzynna": loop players in radius 15 around event-block: set {_w} to "wither" parsed as potion effect remove {_w} from loop-player
-
@Refresh
-
@DeLajt command /diament: trigger: loop 5 times: set {_x} to random integer between (x-location of player + 10) and (x-location of player - 10) set {_z} to random integer between (z-location of player + 10) and (z-location of player - 10) set {_loc} to location at {_x}, y-location of player + 2, {_z} in world world of player drop 5 diamond at {_loc} send "Wydropilo na: %{_loc}%" Proszę poprawione
-
command /diament: trigger: loop 5 times: set {_x} to random integer between (x-location of player - 10) set {_z] to random integer between (z-location of player - 10) set {_loc} to {_x}, y-location of player, {_z} in world world of player drop diamond at {_loc} coś takiego, ja nie działa to napisz a poprawię
-
Nie ma, to ma być najzwyklejszy handel z graczami. Ban lista tutaj nie jest potrzebna, bo po co. Jeżeli gracz coś posiada to może również i tym handlować Mogę jeszcze dorobić takie małe co nie co do tego skryptu. Zapisywanie w logach kto z kim co wymieniał. Co o tym sądzisz?
-
@SQK chyba coś Ci się pomyliło z tematami To jest skrypt na handel z graczami a nie banowanie
-
No to masz ode mnie challange accept Dodaj do tego skryptu jeszcze jedną komendę, która w GUI wyświetli topkę graczy wykopanego kamienia i obsidianu
-
Wchodzisz na tę stronę. Wciskasz CTRL+A później CTRL+C przechodzisz do notepad++ lub sublime Wciskasz CTRL+V Zapisujesz jako skrypt I gotowe
-
Odsyłam Cię tutaj: https://www.youtube.com/watch?v=3FpmfKMPp5Y
-
Tak trochę łopatologicznie to zrobiłem ale działa. Jeszcze się pobawię, bo wiem, że kiedyś coś zrobiłem tylko nie pamiętam expressiona, bo były chyba 3 złączone w jeden A chwilowo musisz się zadowolić tym: command /t: trigger: set {_item} to "%player's tool%" set {_item} to "%first 1 character of {_item}%" parsed as integer if {_item} is integer: send "&7Blad. Musisz miec jeden przedmiot w rece!" stop send "&7Jest OK!"
-
@xN0MANDx chcesz pobrać ilość przedmiotu z ręki ? Dobrze zrozumiałem?
-
Oj tego nie wziąłem pod uwagę, przepraszam. Za chwilkę coś obczaję Dobra teraz to obczaiłem na 100% Mam takowy kod: command /spr: trigger: set {_boot} to player's boot give {_boot} to player i nie ważne czy z name czy z lore czy z enchantem, daje mi takie buty jakie mam na sobie czyli możesz na spokojnie używać samo player's boot (meta data się zapisuje w zmiennych) Fakt faktem, gdy dasz send "%{_boot}%" to wyświetli Ci się samo "diamond boots" lecz te enchanty lore i name będą zachowane.
-
Jedyne co mi przychodzi do głowy to coś takiego: set {_boot} to player's boot named name of player's boot with lore lore of player's boot I analogicznie do pozostałych Tylko jest jeden mały problem. Gdy przedmiot nie ma lore, to da jedną linijkę pustą lore, więc też takie nie precyzyjne rozwiązanie, lecz już lepsze takie niż żadne
-
@OliPlayGames oczywiście że autorski Skrypt pisałem krótko. Bodajże ze dwa dni (dziennie około 5 godzin). Wraz z systematycznym sprawdzaniem czy działa i poszukiwaniu na bieżąco błędów Niedługo znów dodam aktualizację, bo znów znalazłem błąd kopiowania itemów i nie za bardzo mi się to podoba. Znalazłem już rozwiązanie owego błędu
-
Sorki, że wtrącę swoje 3 grosze, lecz chyba muszę Otóż da się, "Wszystko się da", wystarczy tylko chcieć. Potrzebny tutaj jest dodatek PirateSK (kojarzy ktoś? On ma taką funkcję) Po prostu robisz lokację w zmiennej i czas teraźniejszy, później na every robisz sprawdzanie czy minęło te 2 godziny i według danej funkcji wklejasz schemat. Bez zbędnych execute player command czy jakiś innych ** (wstaw dowolne słowo). Przepraszam, że nie dam kodu, lecz nie znam w 100% piratesk, a dokumentacja skunity nie działa (strona jest tymczasowo nieaktualna, nie mogę się połączyć), a na internecie jej nie znalazłem. Nie chodzi tutaj o jakieś on join. bo wtedy i tak budowla wybuduje się gdy gracz dopiero wejdzie na serwer, wybuduje się np jak gracz wbije za 3 dni. Tutaj chodzi o samą sprawność skryptu że musi się wybudować za 2 godziny i koniec kropka. Wyjątkiem jest wyłączenie serwera, ale jak się go z powrotem włączy np za te 2 godziny to automatycznie tę budowlę wybuduje. Gdy tylko skUnity znów zacznie działać (tak samo jak "naprawiłeś mechanik w WOT" lub coś w podobie ) postaram się obczaić to i podesłać gotowy skrypcik
-
Chyba coś takiego, nie testowałem on rightclick on villager: if name of entity is "Darmowa wypłata": if {villager.%player%} is not set: set {villager.%player%} to now remove 3 hour from {villager.%player%} if difference between {villager.%player%} and now is larger than 2 hours: set {villager.%player%} to now give 2 322:2 to player add 300 to player's balance send "Prosze twoja wyplata." stop set {_time} to {villager.%player%} add 2 hour to {_time} send "&6Przyjdz: &3%{_time}%" stop command /villager: trigger: if player has permission "postaw.villager": spawn villager at player set name of last spawned villager to "Darmowa wypłata" send "Postawiles villagera z wyplata." stop
-
A nie lepiej zablokować piec na czas przepalania i dopóki nie wyciągnie tego złota? Można by było jeszcze dorobić takich 'sojuszników' by móc dodawać znajomych by mogli ten piec otworzyć
-
Musisz to przekonwertować na timespan by działało w effectie wait, czyli coś takiego: set {_time} to "%1/{RWojDex.%player%}% second" parsed as timespan wait {_time} czyli twój kod będzie wyglądał tak: on rightclick holding a wooden sword: if name of player's tool is "&7Szeroki Miecz &6T1": if {RM.%player%} is true: shoot a arrow from player with speed 0.5 set {RM.%player%} to false set {_time} to "%1/{RWojDex.%player%}% second" parsed as timespan wait {_time} set {RM.%player%} to true stop Ale musisz mieć ZAWSZE swoją zmienną jako liczbe, jeżeli ona będzie np Stringiem to na 'wait {_time}' kod się zatrzyma i nic dalej nie wykona. Także musisz przestragać by ta zmienna cały czas była liczbą lub zrobić dla pewności if'a if {RWojDex.%player%} is number: wait {_time} #kod stop send "Blad."
-
Zaktualizowano skrypt do wersji minecrafta 1.11 tym samym usunięto błąd: Dziękuję dla @xMrJoint za zgłoszenie owego błędu.
