-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
Mam zastrzeżenie do linijki nr 2. Nie powinno być przypadkiem 'is not passable'? Mam na myśli, że 'passable' oznacza przenikalny, czyli ten skrypt będzie zapisywał lokalizację jedynie w przypadku, gdy pod graczem nie będzie stałego gruntu. Albo zamieniłbym to na odwrotność, albo na warunek 'if block below player is solid'.
-
1. Ten skrypt przy wykonaniu zlaguje serwer co najmniej na kilkanaście sekund. 2. Co ten skrypt ma robić? Teleportować gracza do miejsca śmierci? W takim wypadku istnieje nieco lepsze rozwiązanie. Musiałbyś u gracza co przykładowo 10 sekund sprawdzać czy jest na ziemi, jeżeli tak to zapisujesz jego lokalizację do zmiennej i przy śmierci teleportujesz go do niej.
-
Z tego, co zrozumiałem, autor ma na myśli teleportację do najbliższego bloku gdy przykładowo skoczysz w przepaść. Twój skrypt w tym przypadku nie zadziała. Ten kod masz wstawić do pętli. Jeżeli nadal nie działa, zapewne masz starą wersję Skripta.
-
Poza zapętlaniem bloków w promieniu x bloków od gracza nie ma innej możliwości. Chyba nie muszę mówić jaki wpływ na serwer będzie miała pętla: loop blocks in radius 100 around player:
-
Blokowanie tworzenia netheritowych setów w smithing table
Kormic odpowiedział(a) na bosOx pytanie w Pytania i problemy
Skript poza aliasami nie zawiera eventów dot. nowych bloków. Podejrzewam, że za wyjątkiem zablokowania tych bloków w 'on right click' niewiele jesteś w stanie zrobić. Jeżeli czujesz się na siłach i znasz podstawy Javy, spróbuj z dodatkiem skript-reflect. -
Mógłbym dać ci coś takiego, command /piecyk: trigger: open furnace inventory named "Piecyk" to player ale jak zauważysz, ten piec w ogóle nie działa, a w dodatku po jego zamknięciu cała jego zawartość jest utracona. W takim wypadku przy użyciu tej komendy należałoby postawić przed graczem prawdziwy piecyk i przy zamknięciu okna zniszczyć go. Skrypt: command /piecyk: trigger: if targeted block is not set: send "&cNie ma odpowiedniego miejsca na postawienie piecyka!" to player stop if distance between targeted block and player is greater than or equal to 5: send "&cNamierzony blok jest zbyt daleko!" to player stop if block above targeted block is not air: send "&cNie ma wolnego miejsca nad namierzonym blokiem!" to player stop set {piecykLoc::%player%} to location at block above targeted block set block at {piecykLoc::%player%} to furnace open inventory of (block at {piecykLoc::%player%}) to player set {piecykUzycie::%player%} to true on break of furnace: loop all players in radius 5 around block under event-block: if loop-player is event-player: continue if {piecykUzycie::%loop-player%} is set: if loop-player's targeted block is block under event-block: cancel event on inventory close: if {piecykUzycie::%player%} is true: set block at {piecykLoc::%player%} to air clear {piecykUzycie::%player%} and {piecykLoc::%player%} Informacja: Ten skrypt jedynie powoduje, iż piec działa, natomiast zawartość po zamknięciu i tak przepada. Jeżeli chciałbyś ją zapisać, musiałbyś tworzyć nowe zmienne przy zamknięciu i zapisywać w nich slot od przepalanych przedmiotów, slot od paliwa oraz slot z przepalonymi przedmiotami.
-
Miałem podobny pomysł, mianowicie po prostu gracz uderzałby samego siebie i w 'on damage' anulowałoby się event. Co do przechwytywania atrybutów z NBT, niestety to się nie powiodło ze względu na dwie rzeczy: 1. Metody z ItemMety dot. atrybutów nie działają. Podam prosty kod: import: org.bukkit.inventory.meta.ItemMeta org.bukkit.inventory.ItemStack org.bukkit.attribute.Attribute org.bukkit.Material command /test: trigger: set {_i} to new ItemStack(Material.DIAMOND_SWORD, 1) set {_m} to {_i}.getItemMeta() send "%{_m}.hasDisplayName()%" # To działa i zwraca 'false' send "%{_m}.hasAttributeModifiers()%" # Natomiast to już nie działa, a skript-reflect twierdzi, iż nie rozpoznaje takiej metody, w rezultacie zwraca '<none>' Taka sama sytuacja była z przechwytywaniem wartości atrybutu GENERIC_ATTACK_DAMAGE, dodatek również rzucał błędem, iż nie rozpoznaje takiej metody. Myślałem nad przechwyceniem wartości z domyślnego lore itemów, jednakże nie znam metod z Javy, które byłyby w stanie to zrobić poprawnie w skript-reflect'cie. 2. NBT nie zawiera wartości atrybutów tak długo jak nie zostaną ręcznie ustawione np. poprzez plugin lub customowe NBT w komendzie /give. Gdy wysyłałem NBT zwykłego diamentowego miecza, na czacie ukazywały się jedynie nawiasy klamrowe '{}'. W takim wypadku najprościej byłoby zrobić tak jak ja napisałem, mianowicie ustawiamy zmienną, która informuje, że gracz uderzy się, gracz przy uderzeniu bloku uderza siebie, nasłuchujemy do event 'on damage', sprawdzamy czy zmienna jest ustawiona, jeżeli tak to anulujemy event, odejmujemy życie tego bloku (zapewne będzie w jakiejś zmiennej) i czyścimy wcześniej ustawioną zmienną. EDIT: Jest jeszcze jeden problem, prawie zapomniałem o nim wspomnieć. Zapewne chcesz, aby HP Metina było widoczne nad nim. Gdyby to było entity, sprawa byłaby znacznie prostsza, a tak to trzeba tworzyć armor stand i jemu nadawać nazwę. Tutaj znowu pojawiają się kolejne problemy: 1. Zabezpieczenie armor standa przed niszczeniem. 2. Zmniejszenie hitboxu armor standa poprzez modyfikację jego NBT (dodanie do niego "Marker:1b").
-
Ze względu na to, iż Skript prawie w ogóle nie posiada składni dot. regionów, nie ma innego wyjścia niż robienie tego poprzez konsolę... on place of stone: execute console command "//pos1 %location of event-block%" execute console command "//pos2 %location of event-block%" add 1 to {cuboid::ilosc} execute console command "/rg create cuboid%{cuboid::ilosc}%" on break of stone: if "%region at event-block%" contains "cuboid": execute console command "/rg remove %region at event-block%" remove 1 from {cuboid::ilosc} on command: if full command contains "rg remove cuboid" or "rg rem cuboid" or "rg delete cuboid" or "rg del cuboid": remove 1 from {cuboid::ilosc} EDIT: Możliwe, że zmienna %location of event-block% nie zadziała, gdyż zawiera x=, y=, z=. W takim wypadku trzeba będzie użyć zmiennych %x-loc of event-block%,%y-loc of event-block%,%z-loc of event-block%.
-
Pamiętasz naszą wczorajszą rozmowę, w której przewinął się m.in. temat służbistów? xD Zobaczymy czy i taki się nie pojawi w sprawie twojego postu. Ostatnio testowałem przechwytywanie wartości atrybutów poprzez skript-reflecta, jednak coś nie chciało dobrze pójść. Z tego co pamiętam, to był problem z przechwytywaniem ItemMety przykładowego miecza. Spróbuję jeszcze raz i w razie czego dam znać.
-
Brawo, w ten sposób zraziłeś do siebie wszystkie osoby, które być może były w stanie ci pomóc. Fachowo określiłbym to chamską dyskwalifikacją.
-
Teoretycznie jest sposób, mianowicie odczytywanie z NBT wartości atrybutu genericAttackDamage.
-
Wystarczy użyć wyszukiwarki i wpisać frazę "funnyguilds własny schematic". Pierwsze 3 wyniki powinny spokojnie wystarczyć.
-
W tym configu masz te instrukcje. Jeżeli nie wystarczy, poszukaj w internecie. Z tego co pamiętam, to powstały poradniki jak utworzyć własny schematic serca gildii.
-
Czy utworzyłeś sobie poprawnie schematic z pomocą WE/FAWE? Czy podałeś poprawny plik? Czy zrobiłeś wszystko zgodnie z instrukcjami?
-
Proszę, oto skrypt. on join: loop 9 times: set slot loop-number - 1 of player's inventory to black stained glass pane named " " set slot 4 of player's inventory to compass on inventory click: if clicked slot is not between 0 and 8: stop if clicked inventory is not player's inventory: stop cancel event on drop: if event-item is compass or black stained glass pane named " ": cancel event on click: if player's tool is compass: execute player command "/sectors" EDIT: Poprawiam jedną nieprawidłowość w skrypcie.
-
Raczej masz na myśli 'if clicked slot is between 0 and 44'. Pozwala to na sprawdzanie czy numer klikniętego slotu mieści się między tymi dwiema wartościami.
-
To jest szczerze niemożliwe. Nie masz żadnych błędów podczas przeładowywania skryptu? Jaką posiadasz wersję Skripta? Jaki masz silnik serwera? Jaka jest jego wersja? Jakie posiadasz dodatki do Skripta na serwerze? EDIT: Sprawdziłem twój kod (poprawiłem jedynie wcięcia) i na serwerze Spigot 1.12.2 wraz ze Skriptem 2.5.1 działa bez zarzutu. on join: wait 7 ticks loop 100 times: send " " send " " send " " send " &8• &7Witaj &a%player% &7na serwerze &6&lKC&f&lHC.PL" send " &8» &7Zaloguj sie za pomoca &f/login <haslo>" send " &8» &7Zarejestruj sie za pomoca &f/reg <haslo> <haslo>" send " " send "&8• &e&lZyczymy milej gry!" send " "
-
Nie wyświetla ci się jedynie ta wiadomość?
-
Podejrzewam, iż to jest wina Skripta i mogą być tego dwie przyczyny: 1. Deweloperzy Skripta obecnie nie wspierają w pełni żadnej wersji na 1.16, gdyż plugin ten oferuje wsparcie dla ostatnich patch wersji, a takowej 1.16 jeszcze nie ma, gdyż nie wyszła 1.17. 2. Jest to błąd wynikający czysto z kodu Skripta. Mimo wszystko uważam, że warto opisać problem na Githubie maintainerów Skripta, nigdzie nie otrzymasz lepszej pomocy niż tam. W czym ma niby pomóc usunięcie spacji?
-
Jedyny plugin, który znam, aby dodawał zawartość z nowszych wersji to Carbon. Dodaje on jedynie zawartość z wersji 1.9 do 1.8, ale myślę, że jest to warte przejrzenia i przetestowania. https://github.com/MCCarbon/Carbon-2 Tutaj masz główną stronę pluginu na Spigot'cie, gdzie masz podane cechy pluginu, wymagania, zastrzeżenia itp. https://www.spigotmc.org/resources/carbon.1258/
-
Wystarczy użyć eventu 'on right click with fireball', a w nim dodać efekt 'shoot a fireball from player with speed [prędkość]'. Natomiast jak ustawić moc eksplozji? Cóż tutaj masz 2 wyjścia: 1. Ustawienie mocy eksplozji w NBT fireballa poprzez dodatek SkBee lub SkStuff, może być również SkNBeeT. shoot a fireball from player with speed 1 add "{ExplosionPower:5}" to nbt of last spawned fireball Liczba w drugiej linijce oznacza moc. Nie jestem pewien czy to zadziała, gdyż dodawanie czegoś do NBT pocisków rzadko kiedy skutkowało. 2. Dodanie fireballa do listy przy jego wystrzeleniu, nasłuchiwanie do eventu 'on projectile hit', sprawdzanie czy fireball jest projectilem, jeśli tak, tworzysz większą eksplozję. add last spawned fireball to {fireballLista::*} on projectile hit: if {fireballLista::*} doesn't contain event-projectile: stop remove event-projectile from {fireballLista::*} create explosion of force 5 at location of event-projectile Ten sposób ma swoją wadę, mianowicie przy każdorazowym przeładowaniu tego skryptu będziesz otrzymywał w konsoli warna (ostrzeżenie), którym w tym przypadku nie trzeba się martwić. Pamiętaj aby korzystać z dokumentacji Skripta (jest ich wiele, poszukaj), a będziesz wiedział wszystko.
-
Otóż tak @PanMaruda, odpowiedz do jasnej ciasnej...
-
Z tego co widzę, to używasz PlugMana. Nie zalecam używać go przy Skript'cie, gdyż powoduje on błędy tak samo jak komenda /reload. EDIT: Przypomnij sobie co dokładnie robiłeś zanim pluginy zaczęły rzucać błędami.
-
Proszę, oto skrypt. Pamiętaj na przyszłość, że to jest dział Pytania i Problemy i tutaj zwykle oczekuje się minimalnej samodzielności od autora wątku. Zlecenia (jak chociażby to: "czy mógłby ktoś dopisać...") powinno umieszczać się w dziale Zlecenia. on chat: loop all players: if loop-player have permission "powiadomienia.off": if message contains "%loop-player%": replace all "%loop-player%" with "%loop-player%&r" in message stop else: if message contains "%loop-player%": if {cooldown::ping::%player%} is set: if difference between {cooldown::ping::%player%} and now is less than 1 minute: send "&cPo każdym pingowaniu musisz odczekać &61 &cminutę, aby móc ponownie kogoś pingować!" to player stop set {cooldown::ping::%player%} to now replace all "%loop-player%" with "&6&l%loop-player%&7" in message play sound "entity.experience_orb.pickup" with volume 1 and pitch 1 at all players for loop-player send title "&c&lHej!" with subtitle "&7Gracz &6%player% &7oznaczyl cie na czacie!" to loop-player command /powiadomienia [<text>]: trigger: if arg 1 is not set: send "&cNiepoprawne uzycie! Uzyj /powiadomienia [on|off]" if arg 1 is "on": if player has permission "powiadomienia.off": execute console command "lp user %player% permission unset powiadomienia.off" send "&cPowiadomienia zostaly wlaczone!" else: send "&cMasz juz wlaczone powiadomienia!" if arg 1 is "off": if player has permission "powiadomienia.off": send "&cMasz juz wylaczone powiadomienia!" else: execute console command "lp user %player% permission set powiadomienia.off" send "&cPowiadomienia zostaly wylaczone!"
-
Proszę. every 60 seconds: send "Jestem amatorem w skryptach" to all players send action bar "Jestem amatorem w skryptach" to all players EDIT: Poprawiłem literówkę w skrypcie.
