-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
cant understand execute console command
Kormic odpowiedział(a) na NapiTK pytanie w Pytania i problemy
No cóż, jedynie co ci mogę poradzić to dokładne sprawdzenie komendy pod względem poprawności i czy aby na pewno nie ma w niej jakiegokolwiek błędu. Z tego co widzę, to masz prosty debug w postaci wiadomości "SIEMA". Sprawdź czy przy wykonywaniu komendy ona się pokazuje. Jeśli tak, to znaczy, że w tych komendach w execute'ach masz jakieś błędy. Natomiast jeśli nie, to znaczy, że warunek powyżej w kodzie nie został spełniony. Co do samego warunku w przypadku gdy nie działa: lepiej, abyś sprawdzał odległość między tymi dwoma blokami poprzez 'distance between {_blok} and {_blok1} is less than 0.5:'. Oczywiście w miejsce tych dwóch zmiennych wstawiasz to, co ci jest potrzebne. -
Masz na myśli skrypt na drop?
-
Proszę. Na górze skryptu ustawiasz sobie zakres koordynatu X i Z oraz świat. EDIT: Zapomniałbym dodać, funkcja jest autorstwa użytkownika ZiemniaQ. options: min-x: -3000 max-x: 3000 min-z: -3000 max-z: 3000 swiat: world function getRandomLoc(xmin: integer=-1000, xmax: integer=1000, zmin: integer=-1000, zmax: integer=1000, world: text="world") :: location: while {_return} is not set: set {_x} to random integer between {_xmin} and {_xmax} set {_z} to random integer between {_zmin} and {_zmax} set {_loc} to highest block at location at {_x}, 0, {_z} in world ({_world} parsed as world) if block at {_loc} != lava or water: add 1 to y-loc of {_loc} if (block at {_loc}) and (block above block at {_loc}) != lava: set {_return} to {_loc} return {_return} on join: teleport player to getRandomLoc({@min-x}, {@max-x}, {@min-z}, {@max-z}, "{@swiat}") on respawn: teleport player to getRandomLoc({@min-x}, {@max-x}, {@min-z}, {@max-z}, "{@swiat}")
-
Czyli po prostu miałeś na myśli jak sprawić, aby po kliknięciu karteczki gracz powrócił do pierwszego okna? No to w takim razie po prostu wrzuć do warunku 'if clicked slot is 26:' taką linijkę: execute player command "craft" I tyle. Po problemie. EDIT: Jeśli nie chcesz widzieć niepotrzebnie wykonywanych komend w konsoli, daj otwieranie GUI o nazwie "Crafting" do funkcji. Mały przykład dla zrozumienia: function openCraftingGUI(p: player): open chest with 3 rows named "test" to {_p} set slot 13 of {_p}'s current inventory to diamond named "&aTo działa!" command /test: trigger: openCraftingGUI(player)
-
Podaj silnik serwera, jego wersję, wersję Skripta oraz posiadane do niego dodatki. Bez tych informacji nie będę w stanie zbyt wiele stwierdzić. PS. Jeśli nie będziesz wiedział jak coś sprawdzić, użyj wyszukiwarki.
-
Prostszym wyjściem będą tabliczki, ewentualnie możesz zrobić jakiś kantor, w którym wymieniasz walutę serwerową na jakieś kupony/worki z pieniędzmi, a później wstawiasz te worki z pieniędzmi do wymiany u villagera. Sprawdź czy konfiguracja twojego serwera jest zgodna z wymaganiami pluginu. Zainteresuj się również plikiem konfiguracyjnym samego pluginu. Nie można również wykluczyć możliwości, iż jakiś plugin odpowiadający za brak lagów (np. ClearLag) czyści ci co jakiś czas wszystkie moby na serwerze. Jednakże nie jestem zwolennikiem wróżenia z fusów. Przetestuj, poczytaj, a dowiesz się co może być przyczyną. Zapewniam cię, że villagerzy z Shopkeepersów nie znikają sami z siebie.
-
To jest wirtualne GUI, gdy je zamykasz, to te itemy znikają bezpowrotnie. Mimo wszystko nadal nie rozumiem, co dokładnie masz na myśli. Nagraj jakieś wideo rozjaśniające sytuację abym wiedział jak ci mogę pomóc.
-
świat Skrypt na kity (bez potrzeby używania essentialsa)
Kormic odpowiedział(a) na KrychaMC09 temat w Skrypty
Dobrze, a teraz wymienię wszystkie błędy występujące w tym skrypcie. Z góry przepraszam moich poprzedników, jeżeli przypadkiem kogoś powtórzę. 1. Nie używaj format slota. Jest zbugowany i niemalże każdy o tym wie. Widziałem również propozycję użycia TuSKe do formatowania GUI. Nie ma sensu operować na starym jak świat dodatku, w którym niewielka część funkcji poprawnie działała (chociaż ty używasz 1.8.8, być może znajdziesz dobrze funkcjonujące starsze wersje (istnieje jeszcze oczywiście fork TuSKe autorstwa TukeNuke'a, korzystałem z niego i szczerze... niewiele rzeczy tam poprawnie działało)). Jedyną rzeczą, którą polecam, jest 'set slot' z natywnego Skripta. Ewentualnie rzuć okiem na formatowanie GUI z pomocą skryptu mGUI Pana Marudy (tutaj niewiele mam do powiedzenia, gdyż nie miałem jeszcze okazji z niego skorzystać). 2. Co do tego... open chest with 3 rows named "&8» &c&lDostepne zestawy:" to player wait 5 ticks if {kitgracz:%player%} is true: Używanie delayów przy formatowaniu GUI jest niezwykle niebezpiecznym zabiegiem. W tym przypadku można dość łatwo to zbugować. Podczas gdy patrzysz się na skrzynkę, wpisujesz komendę z GUI, od razu je zamykasz i otwierasz wcześniej wspomnianą skrzynkę. No i voilà! Tym sposobem zbugowałeś GUI. Podejrzewam, że podobnie zadziała również w przypadku szybkiego otwarcia własnego ekwipunku. 3. Jeżeli chodzi o ten fragment kodu (oraz kilka innych mu podobnych): set {kitgracz:%player%} to false wait 30 seconds set {kitgracz:%player%} to true Ten cooldown jedynie zadziała w przypadku gdy serwer w ciągu tych 30 sekund się nie zatrzyma. No a co jeśli jednak się zatrzyma? Cóż, wtedy ten delay się usunie, a gracz już nigdy nie będzie mógł ponownie odebrać kitu. Pomyśl co w przypadku delayów 'wait 3600 seconds'. Takich rzeczy z pewnością nie powinieneś robić. Jeżeli chcesz zrobić cooldowny, masz dwa wyjścia: Użycie 'cooldown' wbudowanego w komendę: command /kitgracz [<text>]: cooldown: 30 seconds cooldown message: &cMusisz odczekać &630 &csekund po każdym odebraniu kitu gracza! cooldown storage: {kitgracz::%player%} trigger: #twój kod Jeśli chcesz wiedzieć więcej na ten temat, gorąco zachęcam do przeczytania poradnika Pana Marudy: https://skript.pl/temat/41229-komendy-w-skript/ Stworzenie własnego cooldownu poprzez obliczanie różnicy między wartością zmiennej, a zmienną 'now', command /kitgracz [<text>]: trigger: if {kitgracz::%player%} is set: #sprawdzanie czy zmienna z ostatnim czasem użycia komendy jest ustawiona if difference between {kitgracz::%player%} and now is less than 30 seconds: #czy różnica między czasem w zmiennej {kitgracz::%player%} a 'now' (teraz) jest mniejsza niż 30 sekund. Jeśli tak, skrypt zostaje zatrzymany, a gracz otrzymuje informację, iż nie może odebrać kitu. send "&cNie możesz jeszcze odebrać kitu gracza!" to player stop set {kitgracz::%player%} to now #ustawianie ostatniego czasu użycia do 'now' (teraz). #dalszy kod W skrypcie po # masz komentarze wyjaśniające co i jak. 4. Mała wskazówka - zamiast dawania pojedynczo elementów zbroi, które posiadają te same parametry, możesz to zrobić o wiele szybciej. Zamiast tego: give 1 iron helmet of protection 4 and unbreaking 3 to player give 1 iron chestplate of protection 4 and unbreaking 3 to player give 1 iron leggings of protection 4 and unbreaking 3 to player give 1 iron boots of protection 4 and unbreaking 3 to player możesz zrobić to w jednej linijce: give all iron armour of protection 4 and unbreaking 3 to player 5. Nie ustawiaj pojedynczo slotów tymi samymi itemami. Możesz to zrobić znacznie szybciej i schludniej za pomocą pętli. To: format slot 0 of player with black stained glass pane named "&6&lSPACE&f&lDROP.PL" to close format slot 1 of player with black stained glass pane named "&6&lSPACE&f&lDROP.PL" to close format slot 2 of player with black stained glass pane named "&6&lSPACE&f&lDROP.PL" to close format slot 3 of player with black stained glass pane named "&6&lSPACE&f&lDROP.PL" to close format slot 4 of player with black stained glass pane named "&6&lSPACE&f&lDROP.PL" to close # i tak dalej... możesz zastąpić tym: loop 54 times: set slot loop-number - 1 of player's current inventory to white stained glass pane named "twoja_nazwa" 'loop-number' oznacza ile razy pętla już się wykonała. Od tej liczby odejmujemy 1, gdyż sloty w Minecraft'cie jak wszyscy wiemy, zaczynają się od zera. 6. W skrypcie masz pełno niepotrzebnych przerw. Między różnymi komendami i eventami wystarczy 1 linijka odstępu. Jak więc widzisz, masz wiele do zrobienia, a więc do roboty. Mam nadzieję, że zrozumiałeś wszystkie ww. błędy, w razie czego pytaj śmiało. Powodzenia z tym skryptem- 12 odpowiedzi
-
- ważne
- skrypt miesiąca
-
(i 2 więcej)
Oznaczone tagami:
-
[Pomoc] jak naprawić by tnt sie nie rozmnażało ?
Kormic odpowiedział(a) na Diablo33 pytanie w Pytania i problemy
Masz tego od groma. Czy próbowałeś samemu wyrzucać skrypty i pluginy po kolei, a następnie sprawdzać, który konkretnie powoduje problemy? Nawet jeżeli prowadzisz obecnie serwer, zarządź przerwę techniczną. Natomiast jeśli nie, to tym lepiej, bo masz nieograniczony czas. EDIT: Mogę jedynie powiedzieć, że podejrzany wydaje mi się plik "Rzucaki-od-Diablo33.sk". Przynajmniej pokaż jego zawartość. Pamiętaj również, aby sprawdzać pluginy po kolei. -
cant understand execute console command
Kormic odpowiedział(a) na NapiTK pytanie w Pytania i problemy
Problem występuje w dwóch miejscach w komendzie: oraz: W zły sposób podwoiłeś cudzysłów w tych dwóch miejscach w komendzie. Usuń ukośnik występujący między rozpoczynającymi podwojonymi cudzysłowiami, a będzie działało. -
Wróciło do poprzedniej skrzynki? Co masz na myśl? Wnioskuję, że raczej twój problem nie leży w 'cancel event'.
-
[Pomoc] jak naprawić by tnt sie nie rozmnażało ?
Kormic odpowiedział(a) na Diablo33 pytanie w Pytania i problemy
To nie jest normalne działanie Minecrafta. Jestem pewien, że powoduje to plugin, bądź skrypt na serwerze. Tak jak Wiktor napisał, podaj listę posiadanych pluginów i skryptów. -
Wybacz, mój błąd. Nie doczytałem do końca. on break of stone: if size of regions at event-block is greater than 0: cancel event stop if block under event-block is not end stone: stop wait 1.6 seconds set event-block to stone
-
Proszę. Pozwoliłem sobie skorzystać z funkcji PyraRTP autorstwa ZiemniaQa. EDIT: W ostatniej linijce ustawiasz sobie w nawiasie: minimalny koordynat X, maksymalny koordynat X, minimalny koordynat Z, maksymalny koordynat Z, nazwę świata (w cudzysłowie!). Możesz równie dobrze wyrzucić wszystko z nawiasu, wtedy będą podane domyślne wartości zawarte w 1. linijce skryptu (tj. -1000, 1000, -1000, 1000, "world"). function getRandomLoc(xmin: integer=-1000, xmax: integer=1000, zmin: integer=-1000, zmax: integer=1000, world: text="world") :: location: while {_return} is not set: set {_x} to random integer between {_xmin} and {_xmax} set {_z} to random integer between {_zmin} and {_zmax} set {_loc} to highest block at location at {_x}, 0, {_z} in world ({_world} parsed as world) if block at {_loc} != lava or water: add 1 to y-loc of {_loc} if (block at {_loc}) and (block above block at {_loc}) != lava: set {_return} to {_loc} return {_return} command /rtp: executable by: players trigger: if player doesn't have permission "rtp.vip": if {rtp::cooldown::%player%} is set: if difference between {rtp::cooldown::%player%} and now is less than 1 hour: send "&cNie mozesz jeszcze użyć tej komendy!" to player stop set {rtp::cooldown::%player%} to now else: if {rtp::cooldown::%player%} is set: clear {rtp::cooldown::%player%} teleport player to getRandomLoc(-3000, 3000, -3000, 3000, "world")
-
Pokaż cały skrypt oraz podaj nazwę regionu.
-
A to ciekawe. Ale czy po przybliżeniu się linka się ponownie pojawia?
-
No to chyba już wiesz w czym leży problem, nie? W takim razie podejrzewam, że nic z tym nie zrobisz.
-
enchant Magiczny enchant - skrypt na enchant w GUI | V 2.0
Kormic odpowiedział(a) na Zabujca997 temat w Skrypty
Skrypt w mojej ocenie jest co najmniej tragiczny. Już mówię dlaczego. 1. Co to ma być? if {enchant.%event-block%} is false: loop 100000 times: if event-block is enchantment table: wait 0.1 seconds set {enchant.%event-block%} to true 2. Skrypt używa zbugowanego 'format slot'. Skoro zabierasz się za jego przerabianie, użyj 'set slot'. 3. Ponad 1000 linijek definicji wielu komend... W dodatku niczym nie są zabezpieczone te komendy. Zdaję sobie oczywiście sprawę z tego, że ten skrypt liczy już sobie ponad 4 lata. Mimo wszystko chciałem wskazać wszystko, co w nim jest błędne czy też dziwne. -
Należy pamiętać o tym, że Slime domyślnie w grze nie może być przywiązany do płotka. Możliwe, że przywiązywanie go generuje pewne problemy. Spróbuj przywiązać np. konia do płotka za pomocą tego skryptu. Jeżeli linka nie zniknie, slime generuje problem, natomiast jeżeli linka również i w tym wypadku zniknie, znaczy, że przywiązywanie mobów w Skript'cie jest zbugowane.
-
Proszę. Wymagany Skript 2.2-dev35+ oraz plugin wspierający grupy oraz permisje na serwerze (m.in. PermissionsEx, LuckPerms). command /graczranga [<offline player>]: trigger: if arg 1 hasn't played before: send "&cTen gracz nigdy wcześniej nie był na serwerze!" to sender stop if arg 1 has permission "permisja.admin": send "&bRanga tego gracza to&7: %group of arg 1%" to player
-
Wrzuć to do skryptu zamiast eventu 'on break of stone'. Region musi zawierać w nazwie "stoniarka". on break of stone: if "%region at event-block%" contains "stoniarka": cancel event stop if block under event-block is not end stone: stop wait 1.6 seconds set event-block to stone
-
O ile pierwszą część rozumiem, tak też drugiej części już nie rozumiem. Co masz na myśli? Masz na myśli, że książka musi mieć nazwę "&cNaprawa"?
-
Podam składnię, będzie o wiele prościej. send title "test" with subtitle "test" to player Co do 'title' i 'subtitle', mogą być oba lub jedno z nich. Natomiast co do 'player, zamiast niego może być 'all players' lub jakiś konkretny gracz.
-
command /pos1: trigger: set {zadanie1} to player's location execute player command "hd create zadanie1 &uZadanie nr1 | Użyj komendy /zadanie1 aby wykonać zadanie" command /zadanie1: trigger: if distance between player's location and {zadanie1} is less than 0.01: send "SIEMA" else: send "Stań w dokładnej pozycji zadania1" Jeśli zadziała, to w linijce nr 8 zamień '0.01' z '0'. Dodam, że 0.01 oznacza odległość 1 centymetra. Czyli odległość 1 oznacza 1 metr. Proste, nie?
-
Dobrze, a więc... 1. Z tego co widzę, to używasz SkUtilities do przechwytywania wartości z plików .yml. Jeśli mam rację, gorąco zachęcam do przeczytania tego testu wydajności: https://forums.skunity.com/threads/dont-use-yaml.3850/. Powinieneś samemu wyciągnąć wnioski. 2. Błędy / dziwne rzeczy: Linijka nr 1: Co to za kropka? Linijka nr 12: Niepotrzebny 'stop' na końcu triggera. Linijka nr 21: 'Permission message' nie musi być zawarty w cudzysłowie. Linijka nr 26 i 50: 'offlineplayer-arg 1'? Dziwne wyrażenie, użyj po prostu 'arg 1'. Linijki od 28 do 31: Niepotrzebne ustawianie zmiennych, użyj w wiadomościach po prostu 'sender'. Linijki od 32 do 39: Dalsze niepotrzebne zmienne. Co do 31. użyj 'arg 2', natomiast w 32. użyj 'arg 1', mniej zmiennych i ten sam efekt. Jeśli chodzi o linijki od 33 do 39, one również są niepotrzebne. Użyj w zastępstwie zmiennej 'now' lub formatowanej zmiennej 'now'. Przykład: send "Czas bana&7: &6%now formatted as ""dd-MM HH:mm:ss""%" Linijki 54, 58, 61, 64, 67: W tych linijkach są kolejne, niepotrzebne 'stop'. Linijka nr 73: W warunku powinno być "don't", bądź "doesn't". Linijka nr 75: Zmienne lokalne zawarte w wiadomości będą nullami (nie będą miały wartości), gdyż nigdzie wcześniej w triggerze 'on join' nie są ustawiane. Linijka nr 76: Niepotrzebny 'cancel event', zresztą eventu 'on join' nie można wycofywać. Wystarczy sam 'kick player due to %string%'. 3. Jeszcze odniosę się do drzew if'ów w triggerze zdefiniowanej komendy. Oczywiście, twój skrypt działa, ale możesz go uczynić "ładniejszym", a co za tym idzie, bardziej czytelnym. Mam na myśli zastąpienie czegoś takiego: command /test [<text>] [<text>] [<text>]: trigger: if arg 1 is set: send "1" to sender if arg 2 is set: send "2" to sender if arg 3 is set: send "3" to sender else: send "Nie podałeś argumentu!" to sender else: send "Nie podałeś argumentu!" to sender else: send "Nie podałeś argumentu!" to sender czymś takim: command /test [<text>] [<text>] [<text>]: trigger: if arg 1 is not set: send "Nie podałeś argumentu!" to sender stop send "1" to sender if arg 2 is set: send "Nie podałeś argumentu!" to sender stop send "2" to sender if arg 3 is set: send "Nie podałeś argumentu!" to sender stop send "3" to sender
