-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
Proszę, wymagany dodatek SkQuery. on any move: player is in world "Skyblock" player's y-loc <= 0 if player has permission "permisja.vip": execute player command "spawn" else: {wiadomosc::%player%} is not set send "&cZakup VIPa, aby nie umierać od próżni!" to player set {wiadomosc::%player%} to true on quit: clear {wiadomosc::%player%} Ewentualnie jest również wersja z regionem WorldGuard. Tutaj już nie jest wymagany dodatek SkQuery. on leaving of region "__global__": player is in world "Skyblock" if player has permission "permisja.vip": execute player command "spawn" else: send "&cZakup VIPa, aby nie umierać od próżni!" to player
-
W periodicalu 'every 2 seconds', w którym zapętlisz wszystkich graczy.
-
1. Nie powinieneś używać delayów w evencie tak często aktywującym się jak 'on any move'. Przez to każdy gracz tworzy kilkaset (jak nie kilka tysięcy) delayów na sekundę. Serwer z pewnością czegoś takiego nie polubi. 2. Używaj jedynie tabulacji w swoim skrypcie, dzięki temu nie będziesz musiał się martwić o takie błahostki.
-
Właśnie podałem rozwiązanie w poprzednio utworzonym przez ciebie zleceniu.
-
Dobrze, przyszedłem z nowym rozwiązaniem. Testowałem i działa jak marzenie. Wymagane dodatki skript-reflect oraz SkQuery. import: org.bukkit.event.inventory.PrepareItemCraftEvent org.bukkit.inventory.ItemStack org.bukkit.Material on PrepareItemCraftEvent: event.getRecipe().getResult() is any iron armor or any gold armor or any diamond armor set {_} to "%event.getInventory().getMatrix()%" {_} contains "iron ingot" or "golden ingot" or "diamond" {_} doesn't contain "diamond block" event.getInventory().setResult(new ItemStack(Material.AIR, 1)) on load: register new shaped recipe for iron helmet using iron block, iron block, iron block, iron block, air, iron block, air, air, air register new shaped recipe for iron chestplate using iron block, air, iron block, iron block, iron block, iron block, iron block, iron block, iron block register new shaped recipe for iron leggings using iron block, iron block, iron block, iron block, air, iron block, iron block, air, iron block register new shaped recipe for iron boots using air, air, air, iron block, air, iron block, iron block, air, iron block register new shaped recipe for gold helmet using gold block, gold block, gold block, gold block, air, gold block, air, air, air register new shaped recipe for gold chestplate using gold block, air, gold block, gold block, gold block, gold block, gold block, gold block, gold block register new shaped recipe for gold leggings using gold block, gold block, gold block, gold block, air, gold block, gold block, air, gold block register new shaped recipe for gold boots using air, air, air, gold block, air, gold block, gold block, air, gold block register new shaped recipe for diamond helmet using diamond block, diamond block, diamond block, diamond block, air, diamond block, air, air, air register new shaped recipe for diamond chestplate using diamond block, air, diamond block, diamond block, diamond block, diamond block, diamond block, diamond block, diamond block register new shaped recipe for diamond leggings using diamond block, diamond block, diamond block, diamond block, air, diamond block, diamond block, air, diamond block register new shaped recipe for diamond boots using air, air, air, diamond block, air, diamond block, diamond block, air, diamond block
-
problem z resetowaniem zmiennej %player%
Kormic odpowiedział(a) na michal1250 pytanie w Pytania i problemy
Nie, źle to robisz. Niech stracę, pokażę ci. set {_zmienna} to {cooldown::%player%} add 24 hours to {_zmienna} send "Musisz odczekać jeszcze %difference between {_zmienna} and {cooldown::%player%}%!" Już rozumiesz? Jeżeli chcesz przetłumaczyć ten czas na polski, musisz utworzyć funkcję, która będzie przyjmowała typ 'timespan', będzie zmieniała go na tekst, w tekście będzie zamieniała angielski czas na polskie odpowiedniki i na końcu zwróci tekst. Brzmi zagmatwanie, wiem. Jeżeli mimo wszystko chciałbyś to osiągnąć, mogę ci pokazać jak to zrobić. Tutaj masz mały wstęp do funkcji: https://wiki.skript.pl/Funkcje -
Jak ustawić zmienną od argumentu z komendy na drugi argument?
Kormic odpowiedział(a) na MineRP pytanie w Pytania i problemy
Widocznie słabo szukałeś. Procentów używamy jedynie w tekście i nazwach zmiennych jeżeli chcemy zagnieździć wartość danej zmiennej. W zmiennej zgubiłeś spację w 'arg1', natomiast przy 'arg 2' nie powinno być tych procentów. -
No i co mamy zrobić z tymi błędami? Zapewne posiadasz zbyt starą wersję Skripta.
-
problem z resetowaniem zmiennej %player%
Kormic odpowiedział(a) na michal1250 pytanie w Pytania i problemy
Musisz wysłać różnicę między {_jeszcze.%player%} a {cooldown::%player%}. Wtedy otrzymasz czas pozostały do ponownego odbioru. -
Z tego co pamiętam to możesz to ustawić albo w bukkit.yml, albo w spigot.yml.
-
Nie da się tak. Albo resource/texture pack/mody, albo się nie da.
-
problem z resetowaniem zmiennej %player%
Kormic odpowiedział(a) na michal1250 pytanie w Pytania i problemy
Pamiętasz jak obiecałem ci, że jeżeli będziesz starał się to zrobić to dostaniesz mój sposób? Ponieważ widzę jak z tym walczysz, to nie widzę problemu, aby się nim z tobą podzielić. Oto on: command /test: trigger: # Sprawdzamy czy zmienna jest ustawiona, jeżeli tak to sprawdzamy różnicę, jeżeli nie, to cały warunek jest pomijany, a zmienna zostaje ustawiona w linijce nr 14 if {cooldown::%player%} is set: # Sprawdzamy różnicę między czasem w zmiennej a czasem obecnym if difference between {cooldown::%player%} and now is less than 24 hours: # Jeżeli jest mniejszy niż 24 godziny, wysyłamy do gracza wiadomość i zatrzymujemy skrypt send "&cNie możesz jeszcze użyć tej komendy!" to player stop # Ustawiamy czas obecny do zmiennej gracza, aby móc w przyszłości kontrolować cooldown set {cooldown::%player%} to now # Dalszy kod Powinien ci pomóc rozwiązać wszelkie problemy z twoim kodem. Dzięki niemu linijka 11. w twoim kodzie jest całkowicie zbędna. Co do twojego skryptu mam jeszcze parę uwag: W linijce 16. niepotrzebny jest 'wait 1 second'. W linijce 251. nie powinieneś ustawiać ostatniego odbioru przez gracza nagrody jako czasu obecnego. Z moim sposobem powinno tam się znaleźć: clear {opu::%player%} Komenda /bonusinfo używa zmiennej lokalnej {_slown}, która nigdzie nie jest ustawiona. Należy pamiętać o tym, że zmienne lokalne są czyszczone po dojściu do końca kodu, w którym się znajdują. Komenda /bonusset jest dziwnie skonstruowana. Z tego co widzę w kodzie wyżej to zmienna {log.%player%} nalicza ile razy gracz wszedł na serwer, a w tej komendzie ustawiasz wartość tego jako tekst, przez co dodawanie będzie niemożliwe. Jeżeli już to ta komenda powinna posiadać jedynie argument [<integer=1>] (należy pamiętać, że nawiasy kwadratowe oznaczają opcjonalność, więc można nie podać liczby, a i tak skrypt zapisze wartość, której nie będzie; dlatego też należy dodać do argumentu domyślną wartość, która będzie przyznana do argumentu w przypadku niepodania go) i wtedy zapisujemy do zmiennej wartość argumentu 1. -
Proszę. every 2 minutes: broadcast "&eZajrzyj na nasz serwer &3Discord&e!"
-
Proszę. command /fly: executable by: players trigger: if flight state of player is true: set flight state of player to false send "&cWyłączono fly!" to player else: set flight state of player to true send "&aWłączono fly!" to player
-
Którą posiadasz wersję Skripta? Możesz opcjonalnie spróbować zapętlić wszystkie sloty w ekwipunku gracza. loop all items in loop-player's inventory: loop-item is paper named "zadanie" remove loop-item from loop-player's inventory
-
Możesz w tym celu wykorzystać plugin JukeBox.
-
Dobra, inaczej. Czemu ten kod ma służyć?
-
No i widzisz, zapomniałeś w ostatniej linijce zamienić 'player' na 'loop-player'.
-
Zliczanie ilości przedmiotów loop-item
Kormic odpowiedział(a) na MineRP pytanie w Pytania i problemy
Pamiętasz jak usuwałem 1 item z narzędzia gracza? Zrób tak samo w przypadku usuwania loop-itemu. -
W takim wypadku wyjaśnię jak to należy zrobić. Używasz eventu 'on mine' i używasz efektu 'add [jakaś liczba] to player's balance'. Gotowe.
-
Ty prosisz o pomoc w zrobieniu skryptu czy oczekujesz gotowego?
-
W takim razie pokaż jeszcze raz kod od periodicala i powiem co jest nie tak.
-
Czy zmiana na 'for player' cokolwiek zmienia?
-
Dokładnie, zaczynasz łapać o co w tym chodzi! Wrzucamy tę pętlę do periodicala i w całym kodzie dalej w tej pętli zamieniamy 'player' na 'loop-player'.
