-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
Cóż, nie ty jedyny miałeś problem z lokalizacją serca gildii. W takim wypadku jest jeszcze kilka opcji, spróbuj każdej z nich zamiast %player's guild guild endercrystal location%: %upper point of guild region player's guild% # Zwraca lokalizację szczytu gildii %lower point of guild region player's guild% # Zwraca lokalizację najniższego punktu gildii %player's guild guild home location% # Zwraca lokalizację bazy gildii
-
Proszę. Za pomocą komendy /detector możesz sobie przywołać ten kilof. on right click: player's tool is diamond pickaxe named "&aDetector" loop all blocks in radius 7 around player: loop-block is any ore set loop-block to stone if player has enough space for loop-block: give player loop-block else: drop loop-block at player command /detector: trigger: give player diamond pickaxe named "&aDetector"
-
Znalezienie twojego problemu było proste, natomiast naprawa tego będzie znacznie cięższa. Ty używasz Spigot 1.16.4 wraz ze Skriptem 2.0, który był stworzony głównie z myślą o wersjach 1.7 i 1.8. Jedynym wyjściem jest aktualizacja Skripta do wersji 2.5.3 (jest na githubie Skriptlang), ale nie zrobisz tego, gdyż hosting cię ogranicza bodajże do wersji 2.1.2. Jeżeli chcesz pisać skrypty na wersji 1.16.4 to albo w jakiś sposób (nie wiem jaki) będziesz musiał wrzucić najnowszego Skripta, albo będziesz musiał rozstać się z Aternosem. Jest to mimo wszystko darmowy hosting, więc nie powinno być to szczególnie bolesne.
-
Proszę. Wymagany dodatek FunnySkAddon (zakładam, że twoim pluginem gildyjnym jest FunnyGuilds). command /walka: trigger: if player doesn't have guild: send "&cNie masz gildii!" to player stop if player isn't deputy: if player isn't guild owner: send "&cNie jesteś zastępcą lub liderem!" to player stop broadcast "&6Gildia &b%player's guild guild tag% &6zaprasza na walkę na kordy &e%player's guild guild endercrystal location%"
-
Czy da się jakoś dać spawner zombie lub iron golema w skrypcie?
Kormic odpowiedział(a) na poprosturudy pytanie w Pytania i problemy
Robisz to za pomocą wcześniej wspomnianego dodatku. W międzyczasie znalazłem ten skrypt, zobacz działanie: Gdzieś jeszcze na pewno zrobiłem ten skrypt, poszukaj samemu. -
Czy da się jakoś dać spawner zombie lub iron golema w skrypcie?
Kormic odpowiedział(a) na poprosturudy pytanie w Pytania i problemy
Tak, ale nie obędzie się bez dodatku. Tutaj przyda ci się niewątpliwie dodatek SkBee, za pomocą którego ustawisz NBT tego spawnera. Jakoś miesiąc temu, może dwa zrobiłem taki skrypt i z tego co pamiętam to działał. Poszukaj chwilę, powinieneś coś znaleźć. -
Ehh... prosiłbym o czytanie ze zrozumieniem. W tym warunku jest 'player', a tam nie powinno go być.
-
1. Musisz zmienić w nazwie zmiennej %player% na %attacker%. 2. Nie musisz sprawdzać czym jest 'victim'. Możesz od razu użyć eventu 'on death of zombie'. 3. Przed atakującym dajemy przedimek 'a', bez tego warunek nie zadziała. if attacker is a player: 4. Blok 'else' w 16 linijce nie ma w ogóle sensu, gdyż wysyła on wiadomość do gracza (którego nie ma w evencie 'on death') tylko wtedy gdy atakującym nie jest gracz. Już samo przeczytanie tego pokazuje, że ten block 'else' jest bezsensowny. 5. Warunek z linijki 19 musi być podporządkowany warunkowi sprawdzającemu czy atakujący to gracz. Bez tego skrypt będzie naliczał chociażby golemom zabójstwa zombie.
-
Problem leży w tym, że w evencie 'on death' nie ma żadnego playera. Jest tylko 'victim' i 'attacker'.
-
Pamiętaj, że podałem 4 sposoby, nie 1. EDIT: Mógłbyś pokazać kod?
-
Weź sobie książeczkę z enchantem, wyślij na czacie jej NBT i przepisz sobie do tego. Oczywiście należy pamiętać o tym, że w całym NBT podwajamy każdy cudzysłów.
-
1. Nie pinguj kogoś kto ma ci pomóc, bo to jest denerwujące. 2. Możesz rozwiązać ten problem na cztery sposoby. Ręczna modyfikacja NBT przedmiotu z pomocą SkBee. set {_item} to diamond sword add "NBT" to {_item}'s nbt # Lub set "NBT" to {_item}'s nbt register new shaped recipe for... Lub: register new shaped recipe for diamond sword with nbt "NBT" using... Użycie wyrażenia 'stored enchantments' pochodzącego z SkBee. add sharpness 2 and unbreaking 3 to {_item}'s stored enchantments Użycie skript-mirror/skript-reflect do modyfikacji ItemMety przedmiotu. function AddStoredEnchants(item: item, enchantments: enchantment types, force: boolean) :: item: set {_meta} to {_item}.getItemMeta() loop {_enchantments::*}: set {_ench} to loop-value set {_type} to {_ench}.getType() set {_level} to {_ench}.getLevel() {_meta}.addStoredEnchant({_type}, {_level} and {_force}) {_item}.setItemMeta({_meta}) return {_item} addStoredEnchants({_item}, (sharpness 2 and unbreaking 3), true) Funkcja nie jest mojego autorstwa. Możliwe, że żaden z tych sposobów nie zadziała (gdyż SkQuery może nie przyjmować przedmiotów z własnym NBT), w takim wypadku będziesz musiał użyć eventu PrepareItemCraftEvent i sprawdzać każdy slot (sprawdzasz listę e.getInventory().getMatrix(); możesz ją sobie ustawić do lokalnej listy zmiennych). Jeżeli się zgadza wszystko, ustawiasz 'e.getInventory().setResult({_item})'. Ten wątek powinien ci pomóc, tam wyjaśniłem co i jak wygląda w sprawdzaniu slotów:
-
Taka, że listami zmiennych o wiele łatwiej jest manipulować aniżeli zwykłymi zmiennymi. # Możesz całą listę od razu wyczyścić: clear {statystykistrona::*} # Możesz ją zapętlić i wykonywać na niej operacje: loop {statystykistrona::*}: # Możesz zobaczyć jej rozmiar: size of {statystykistrona::*} Ale według mnie to i tak w twoim przypadku nie ma większego znaczenia, gdyż i tak nie będziesz ręcznie operował na tych zmiennych. Możesz to w sumie zignorować, bo to nic nie wnosi do twojego problemu.
-
Na stronie dodatku jest link do dokumentacji. Dodam, że widzę, iż używasz zwykłych statystyk gracza oraz wyrażeń, które można łatwo w Skript'cie otrzymać. W takim wypadku możesz to zrobić inaczej (z pomocą skript-reflect i czystego Skripta). import: org.bukkit.Statistic org.bukkit.Material set {_uuid} to loop-player's uuid # Tak samo robisz z nazwą set {_smierci} to loop-player.getStatistic(Statistic.DEATHS) # I tak samo z resztą (poza statystyką od wykopanych rud diamentu i dwiema ostatnimi) set {_diaxy} to loop-player.getStatistic(Statistic.MINE_BLOCK, Material.DIAMOND_ORE) # W przypadku wykopanych rud diamentu set {_firstjoin} to loop-player's first login Raczej powinieneś załapać co i jak. W przypadku ostatniej zmiennej wystarczy ustawić, że gracz jest online (np. set {_status} to "Online"), gdyż lista 'all players' zawiera jedynie graczy online. Wymagany Skript 2.5+ oraz skript-reflect.
-
Ersatz jest relatywnie stary, zalecam przerzucić się na skript-placeholders. Co właściwie próbujesz zrobić za pomocą tego kodu?
-
Do systemu logowania nie używaj skryptu, a pluginu (AuthMe). Jeżeli będziesz go już miał, możesz to zrobić następująco: options: IP: cos.cos.pl on join: player hasn't played before: send title "{@IP}" with subtitle "Aby sie zarejestrować wpisz >> /register <hasło> <hasło>" to player else: send title "{@IP}" with subtitle "Aby sie zalogowac wpisz >> /login <hasło>" to player on authme login: send title "Witamy na {@IP}" with subtitle "Miłej rozgrywki życzy administracja serwera" to player Wymagany dodatek TuSKe.
-
Jakiego dodatku używasz do przechwytywania placeholderów? Podaj: wersję serwera silnik serwera wersję Skripta listę dodatków do Skripta wraz z wersjami błędy w konsoli (o ile takowe występują)
-
Sprawdzisz prostym warunkiem: if name of player's current inventory is "nazwaGUI": # Dalszy kod Nie rozumiem pytania, można jaśniej?
-
Zapomniałeś to wstawić w event 'on inventory click'. Zapomniałeś również o sprawdzaniu nazwy. Jeżeli chcesz, aby przedmiotów nie dało się wyciągać, użyj 'cancel event' po sprawdzaniu nazwy GUI oraz typu inventory.
-
Tak. W drugiej linijce ustawiasz permisję. command /dajopmamywlama: permission: twoja.permisja trigger: op player add "Wlasciciel" to player's groups Jeżeli wolisz to wykonać konsolową komendę, zamiast ostatniej linijki wstaw: # W przypadku PermissionsEx: execute console command "pex user %player% group add Wlasciciel" # W przypadku LuckPerms: execute console command "lp user %player% parent set Wlasciciel"
-
Ach, w takim wypadku przed anulowaniem eventu musisz jeszcze sprawdzić czy kliknięte inventory to nie jest inventory gracza. if clicked inventory is not player's inventory: # Dalszy kod
-
Tutaj masz przykładowy skrypt: Podsumowując, powinieneś poszukać samemu na forum, coś na pewno się znajdzie.
-
Musisz użyć eventu 'on inventory click', w którym sprawdzasz nazwę tego GUI. Jeżeli jest zgodna, anulujesz event (aby itemów nie dało się wyjąć) i sprawdzasz kliknięty slot. if clicked slot is 10: # Przykładowo Następnie wykonujesz daną akcję po tym warunku, ot cała filozofia.
-
Zaktualizuj Skripta do wersji 2.5.3 i spróbuj jeszcze raz.
-
Wystarczy skopiować niemalże cały pierwszy skrypt i wkleić do drugiego.
