Skocz do zawartości

Kormic

Zasłużony
  • Ilość zawartości

    11014
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Po treści wcześniejszej twojej odpowiedzi wygląda na to, że jesteś jednym z tych skrypterów z przerostem ambicji. Przeczytaj jeszcze raz moje porady, dokładniej punkt 2.
  2. A więc uwagi ode mnie: 1. Nie podałeś specyfikacji serwera, więc możliwe, że nawet po naniesieniu poprawek nadal nie będzie coś działać, gdyż nie będę w stanie dostosować odpowiednio skryptu do wymagań twojego serwera. 2. W linijce nr 1 jest błąd, gdyż tworzenie skryptów polega na tworzeniu ich za pomocą triggerów/eventów/periodicali oraz tym podobnych. Ty natomiast wrzuciłeś luźno ustawianie zmiennej. Skąd serwer ma wiedzieć kiedy ustawić tę zmienną? Skąd serwer ma wiedzieć kim jest %player% w nazwie zmiennej? Jeżeli już to powinieneś wrzucić ustawianie tej zmiennej do sekcji 'variables' variables: {sb::%player%} = false 3. W linijce 14. jest ten sam błąd co w punkcie 2. 4. Linijka 15. podobnie. Linijka 14 i 15 jeżeli już to powinny być zamienione miejscami. 5. W linijce 16. czym ma być niby 'loop player'? 6. Co do tworzenia scoreboardów w Skript, lepiej do tego wykorzystać specjalnie do tego przystosowane pluginy. Zanim zabierzesz się za pisanie skryptów, zajrzyj do poradników i dokumentacji, dzięki temu nie będziesz musiał niepotrzebnie tworzyć wątków na forum.
  3. Kormic

    Lobby

    Dodaj na końcu tej linijki 'to player'.
  4. Slot zbroi nie jest listą, więc do niego się nie dodaje, a ustawia się go. Przykładowo zamiast tego: add iron helmet named "&aCzapeczka! &e%player%" to the player's helmet powinno to być w ten sposób: set player's helmet to iron helmet named "&aCzapeczka! &e%player%" Co do eventu 'on respawn', możliwe, że wywołuje się zanim gracz rzeczywiście się zrespi. W takim wypadku spróbuj dodać przed dodawaniem przedmiotów 'wait 1 tick'.
  5. Kormic

    Lobby

    Proszę. W linijkach 15 i 17 ustawiasz nazwy serwerów, z którymi gracz ma zostać połączony. on join: set slot 8 of player's inventory to nether star of unbreaking 1 on click: if player's tool is nether star of unbreaking 1: open chest inventory with 3 rows named "&aWybór serwera" to player set slot 11 of player's current inventory to diamond named "&bSkyBlock" set slot 15 of player's current inventory to grass block named "&aFreeBuild" on inventory click: name of player's current inventory is "&aWybór serwera" clicked inventory is not player's inventory cancel event if clicked slot is 11: connect player to "skyblock" else if clicked slot is 15: connect player to "freebuild" EDIT: Naprawiłem błąd w skrypcie w linijce nr 6.
  6. Musisz zrobić tak, że przy postawieniu bloku sprawdzasz czy narzędziem gracza jest ten konkretny blok, jeżeli tak to zapisujesz jego lokalizację do zmiennej. Następnie w pętli 'every 10 minutes' wyrzucasz w lokalizacji zapisanej w zmiennej ten papier. U ciebie pętla 'every 10 minutes' nie działa gdyż nie ma w pętli czegoś takiego jak 'block'. Skąd Skript ma wiedzieć, że masz na myśli ten konkretny blok?
  7. Proszę, oto skrypt. Zalecam korzystać z dokumentacji, aby być w stanie samemu tworzyć takie proste skrypty. on death of player: remove all iron leggings from drops add drops to attacker's inventory
  8. Kormic

    Skrypt na klucz

    W takim wypadku... on player portal: if player doesn't have 1 iron ingot named "&aKlucz": cancel event send "&cNie posiadasz wymaganego klucza!" to player stop remove 1 iron ingot named "&aKlucz" from player's inventory command /klucz: trigger: give player 1 iron ingot named "&aKlucz" Komendą "/klucz" przywołujesz sobie wymagany klucz.
  9. W wersji 1.15.2 oraz w snapshotach 1.16 aż do 20w12a był taki bug, gdzie musiało uczestniczyć dwóch graczy. Pierwszy wsadza do skrzynek osła lub lamy przedmioty, które chce skopiować. Drugi natomiast gracz wsiada na tę lamę/osła i wylogowuje się, a pierwszy wsadza z powrotem wszystkie przedmioty do ekwipunku. Po chwili drugi gracz wchodzi ponownie na serwer i powoduje, że lama/osioł pojawia się ponownie z wszystkimi itemami. Czy istnieje jakiś sposób na naprawienie tego? Tak. 1. Zaktualizowanie serwera do wersji 1.16 (błąd ten został naprawiony w 20w16a). 2. Użycie tego pluginu jako fixa. Chciałbym zaznaczyć, że nie wiem czy ten plugin odpowiednio zadziała czy też nie. EDIT: Dokładniejsza informacja na temat tego buga jest możliwa do znalezienia tutaj, dokładniej pod tytułem "Donkey Inventory Oversight". Jeżeli natomiast twoja wersja serwera to nie jest 1.15.2, to w takim razie najprawdopodobniej jakiś plugin bądź skrypt powoduje tego typu błąd.
  10. Kormic

    on place

    W Skript'cie rzeczywiście dość głupio to działa. Musisz usunąć z eventu 'of red glazed terracotta' i zadziała. Dlaczego? Już wyjaśniam. Eventy wykorzystujące dany 'item type' (dla uproszczenia item) działają jedynie, gdy blok nie posiada nazwy, być może również tutaj zalicza się 'lore' i NBT. Jeżeli masz wiele przedmiotów na serwerze nazywających się "&cNeksus", w takim razie musisz sprawdzić czym jest 'type of player's tool'. Sprawdzisz to poprzez warunek: if type of player's tool is red glazed terracotta: # Dalszy kod
  11. Kormic

    e

    Ponieważ napisałeś, że może to być i skrypt, użyję czystej składni Skripta. command /ch: trigger: open chest inventory with 3 rows named "&6&lWybór sektora" to player set slot 13 of player's current inventory to stone named "Sektor nr 1" on inventory click: name of player's current inventory is "&6&lWybór sektora" clicked inventory is not player's inventory cancel event if clicked slot is 13: connect player to "sektor1" W linijce 11. ustawiasz nazwę serwera.
  12. Kormic

    [Skrypt CHAT] DaxerCHAT

    Mam parę uwag co do skryptu i ogólnie do twojego postu. 1. Nie podałeś wymagań skryptu. Ludzie przez to nie będą wiedzieli co jest potrzebne do tego skryptu, jakie dodatki są wymagane. Spodziewaj się, że w komentarzach pojawi się banda nie-skrypterów, którzy będą cię błagali o pomoc ze skryptem, bo lakonicznie rzecz biorąc, nie działa. 2. Miałem nadzieję, że tego nie zobaczę, ale jednak... Wielu nowym skripterom (a nawet tym bardziej zaawansowanym) wydaje się, że tworzenie baz danych w YAML jest oznaką profesjonalizmu . No cóż, to jest bzdura, a nawet użyłbym bardziej dosadnego określenia. Dla każdego gracza tworzysz nowy plik tylko po to, żeby w nim przechować jedną zmienną. YAML jest językiem będącym możliwie jak najbardziej czytelnym dla człowieka i swoje zastosowanie znajduje głównie w tworzeniu plików konfiguracyjnych. Jeżeli do przechwytywania i zapisywania wartości w plikach .yml nie używasz dodatku skript-yaml, a czegoś innego (chociażby SkUtilities, SkQuery i Skellett), to sprawa wygląda jeszcze gorzej, gdyż te dodatki analizują cały plik, pobierają jedynie potrzebną ci wartość, a resztę natychmiast wywalają. Oczywiście nie muszę chyba mówić o tym, że czytanie pliku z dysku nie jest lekką operacją. skript-yaml jest jedynym dodatkiem, który poprawnie obsługuje przechwytywanie wartości YAML, gdyż analizuje dany plik jeden raz i zapisuje go do pamięci (to samo ma miejsce w pluginach). Pewnie zadasz sobie teraz pytanie: "No to czego w takim razie mam użyć?" Już odpowiadam. Najlepiej użyć wbudowanych rozwiązań w Skript'cie, mam tutaj na myśli jedynie zmienne i sekcja 'options'. EDIT: Dla niedowiarków i innych skripterów z przerostem ambicji mam małą historyjkę dotycząca mojego skryptu na prace oraz dodatku SkUtilities. A więc, skrypt posiadał głównie 4 elementy, były to komendy pomocy, GUI z wyborem pracy, eventy naliczające wartości do zmiennych od każdej pracy oraz komenda sprawdzająca postęp i poziom w danej pracy. Do skryptu załączyłem plik konfiguracyjny o długości ok. 150 linijek, w którym użytkownik mógł sobie zmienić wygląd menu wyboru (mógł ustawić gdzie ma się znajdować dany element, jak chociażby który slot ma zajmować item od wyboru pracy łowcy) oraz wyłączyć pewne elementy skryptu. Jaki był skutek? No cóż, GUI wyboru tworzyło się ponad 4 sekundy, czyli przez 4 sekundy skrzynka była całkowicie pusta. Dodam, że wiadomości, które wykorzystywały ledwie kilka zmiennych, były wysyłane z niewielkim, acz zauważalnym opóźnieniem.
  13. Kormic

    Szybsze bicie

    Nieprawda, chce zmniejszyć cooldown. Cytuję: Co do samego skryptu i NBT... Przetestuję i zobaczę, czy u mnie na serwerze ustawianie wyżej podanych NBT działa (serwer jest na wersji 1.12.2).
  14. Kormic

    Skrypt na sprawdzanie

    Uwagi do dwóch, a właściwie trzech rzeczy. 1. Jeżeli danej zmiennej nie potrzebujesz, lepiej ją czyścić niż ustawiać na 'false'. 2. Ta pętla w komendzie "/sprawdź" jest dziwnie zrobiona. Już lepiej byłoby, gdybyś usunął 5 z 6 tych samych fragmentów i wykonywał tę pętlę 1800 razy, a najlepiej byłoby użyć pętli 'while'. 3. Popracuj nad uporządkowaniem drzew if'ów. # Zamiast robić coś takiego: command /test: trigger: if sender is player: if player has permission "permisja.test": if player has 64 diamonds: send "Hej!" to player # Lepiej zrobić to w ten sposób: command /test: trigger: if sender is not player: stop if player doesn't have permission "permisja.test": stop if player doesn't have 64 diamonds: stop send "Hej!" to player # Lub tak (czyli użycie tzw. inline conditionali): command /test: trigger: sender is player player has permission "permisja.test" player has 64 diamonds send "Hej!" to player
  15. Kormic

    Szybsze bicie

    Faktycznie, nie zauważyłem. W takim razie... Modyfikator szybkości ataku: /give KaWaNoS diamond_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Amount:100,Operation:0,UUIDLeast:60768,UUIDMost:351091,Slot:"mainhand"}],display:{Name:"Dobry miecz",Lore:[Lorem ipsum]}} Modyfikator szybkości ataku oraz modyfikator obrażeń: /give KaWaNoS diamond_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:100,Operation:0,UUIDLeast:199373,UUIDMost:997257,Slot:"mainhand"},{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Amount:100,Operation:0,UUIDLeast:60768,UUIDMost:351091,Slot:"mainhand"}],display:{Name:"Dobry miecz",Lore:[Lorem ipsum]}} W obu przypadkach wartości zostały ustawione na 100.
  16. Kormic

    Szybsze bicie

    Podałem NBT dla wersji 1.12, więc zapewne masz nowszą (albo i starszą) wersję serwera.
  17. Kormic

    Rightclick

    "nie otwiera się gui"? Chyba to "nie" wstawiłeś przez pomyłkę. Używasz otwierania GUI z SkQuery. Skriptowe jest bardzo podobne z tą różnicą, że w linijce podaje się nie "chest", a "chest inventory". on rightclick: if player's tool is ("cruxxx" parsed as offline player)'s skull named "&e&lDaily Reward": open chest inventory with 4 rows named "&0&lClaim your rewards." to player Spróbuj tak i powiedz czy działa, czy też nie.
  18. Kormic

    Rightclick

    Blok reaguje na otwieranie GUI? Nie rozumiem, wytłumacz to dokładniej. Nie podałeś jakiejkolwiek informacji dotyczącej twojego serwera. W jaki sposób bez specyfikacji serwera mam ci niby pomóc? Jaką masz wersję serwera? Jaki masz silnik serwera? Jaką masz wersję Skripta? Jakie posiadasz dodatki do Skripta? Bez odpowiedzi na te pytania nie będę ci w stanie pomóc. Zapewne SkQuery lub TuSKe. Do formatowania GUI w Skript'cie niepotrzebne są żadne dodatki, użyj natywnej składni.
  19. Zdecydowanie zbyt mało szczegółów. Zapytam więc: 1. Kiedy ma się pokazywać wiadomość, że gracz posiada w dalszym ciągu cooldown od enchantu Punch? Jak to ma działać? Gdy jest cooldown, to gracz nie może strzelić z łukiem posiadającym Punch czy po trafieniu jest normalny odrzut jak przy łuku bez Punchu? 2. Co do antymacra... (już pomijam kwestie tego, aby blokować klikanie szybsze niż 13 CPS) jak gracz przekroczy tę magiczną barierę 13 CPS, to ma po prostu nie móc klikać czy co?
  20. Kormic

    Szybsze bicie

    Tutaj masz przykładową komendę dająca ci miecz z attackSpeed równym 100. /give KaWaNoS diamond_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Amount:100,Operation:0,UUIDLeast:205092,UUIDMost:756749,Slot:"mainhand"}],display:{Name:"Dobry Miecz",Lore:["To jest niezwykle","potężny miecz."]}} Możliwe, że ustawienie jedynie jednego atrybutu spowoduje wyczyszczenie innych atrybutów (u mnie kilka razy zdarzyła się taka sytuacja), w takim wypadku należy również ustawić genericAttackDamage, w tym przypadku również ustawia i jego wartość na 100. /give KaWaNoS diamond_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:100,Operation:0,UUIDLeast:524197,UUIDMost:743164,Slot:"mainhand"},{AttributeName:"generic.attackSpeed",Name:"generic.attackSpeed",Amount:100,Operation:0,UUIDLeast:205092,UUIDMost:756749,Slot:"mainhand"}],display:{Name:"Dobry Miecz",Lore:["To jest niezwykle","potężny miecz."]}} Jeżeli ID "diamond_sword", przed tym dodaj "minecraft:", czyli "minecraft:diamond_sword". Możesz również chcieć użyć tego w skrypcie, wystarczy, że z tej komendy weźmiesz całe NBT, podwoisz każdy cudzysłów i wkleisz to do ustawiania NBT w skrypcie. Oczywiście Skript nie obsługuje ustawiania własnego NBT, należy to zrobić poprzez jakiś dodatek, których jest wiele (np. SkStuff, SkNBeeT, SkBee (tego używam i polecam)). Dodawanie wygląda następująco: %item stack% with nbt "%nbt%" # Przykład: give player 1 diamond_sword named "&aTest" with lore "&7Test" with nbt "{Unbreakable:1}"
  21. Kormic

    Szybsze bicie

    Cóż, możliwe, że skript-mirror/skript-reflect nie jest w stanie ustawiać atrybutów gracza, w takim wypadku pozostaje albo plugin i nasłuchiwać do eventu PlayerJoinEvent, albo poszukać po prostu czegoś w odmętach internetu. Można, tylko to właściwie nie ma praktycznego zastosowania. Załóżmy, że autor wątku wyważył sobie system enchantów na kilofach, taki haste może zrujnować wiele. Tak samo speed zmieni oblicze walki. Mimo wszystko mam wrażenie, że podałeś to jedynie w charakterze ciekawostki.
  22. Wiem, że może być to głupie pytanie, ale muszę się upewnić. Czy na pewno zmieniłeś nicki w drugiej linijce? Czy są one poprawnie wpisane? Dla pewności wyślij jak u ciebie wygląda ten skrypt.
  23. Nie, nie. Czy w ogóle te podane nicki działają?
  24. Ważne, że cokolwiek działa Dobra, czy przeładowujesz skrypt przy każdorazowej zmianie graczy z biletem? Bez tego to nie zadziała.
  25. Kormic

    /sklep - skrypt

    Testowany na format slot? Nie brzmi to szczególnie dobrze... Natomiast co do twojego problemu, tak jak Axee powiedział, przy odejmowaniu ze zmiennej z kasą gracza musisz ustawiać ponownie slot ze stanem konta. Podejrzewam, że umieszczenie czegoś takiego w linijce nr 28. (linijkę 28 i 29 przesuwasz o jeden w dół) załatwi sprawę. format slot 17 of player with 1 of 371 named "&aStan Portfela&8:" with lore "&aCoinsy&8: &6%{Kasa::%player%}%" to run [make player execute "isklep5"] Czyli po prostu ustawiasz ponownie ten slot, aby zmienna w lore tego przedmiotu się zaktualizowała.
×
×
  • Dodaj nową pozycję...