Skocz do zawartości

PanMaruda

Użytkownik
  • Ilość zawartości

    1471
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    40

Treść opublikowana przez PanMaruda

  1. function chatStatus(p: player, s: string) :: string: if {alerty::player::%{_p}%::%{_s}%} is not set: set {alerty::player::%{_p}%::%{_s}%} to true if {alerty::player::%{_p}%::%{_s}%} is false: return "&cWylaczone" return "&aWlaczone" function changeStatus(p: player, s: string, slot: integer, item: item): if {alerty::player::%{_p}%::%{_s}%}: set {alerty::player::%{_p}%::%{_s}%} to false else: set {alerty::player::%{_p}%::%{_s}%} to true set {_lore::*} to lore of {_item} set {_size} to size of {_lore::*} set {_lore::%{_size}%} to "&6Status: %chatStatus({_p}, {_s})%" set slot {_slot} of current inventory of {_p} to {_item} with lore {_lore::*} command /ustawieniaczatu [<text>]: trigger: open virtual chest inventory with 4 rows named "&8[&6✘&8] &fChat &8[&6✘&8]" to player set {_status} to chatStatus(player, "dzialki") set {_item} to paper of unbreaking 10 named "&8[&6✘&8] &fDzialki &8[&6✘&8]" with lore "&fWylacz wiadomosci &6wkroczenia na dzialke" and "&6Status: %{_status}%" format gui slot 12 of player with {_item} to run function changeStatus(player, "dzialki", 12, {_item}) Błąd pierwszy odnosi się do ostatniej wartości ze zmiennej - liczyłem na to że da się ją zmienić - otóż nie, trzeba zapisać rozmiar zmiennej ręcznie i ustawić zmienną (zakładając że status danego ustawienia będziesz miał zawsze w ostatniej linijce). Drugi błąd dotyczy funkcji w tekście. Nie wiem dlaczego, ale Skript czasem dostaje pierdolca w takich przypadkach - wtedy jedyne co nam pozostaje to funkcję najpierw zapisać do zmiennej, a dopiero potem tą zmienną wstawić do tekstu (w tym przypadku lore) Owszem, nie musi. Ale ja poradziłem mu, żeby tak robił, bo podobnie jak Skript przy funkcjach - tak TuSKe przy itemach dostaje pierdolca. Jeżeli wstawimy gotowy przedmiot w zmiennej to wszystko jest okej, ale gdy tylko dodamy to tak jak w twoim przykładzie (powiedzmy w ilości trzech linijek) to skrypt będzie ładował się nawet kilkanaście sekund.
  2. Ja tu chciałbym tylko dodać że zmiennych nie tworzy się w ten sposób: {customEnchant.%player%.ench%{_num}%::*} Poprawnie zdefiniowana zmienna powinna mieć każdy indeks oddzielony dwukropkami A NIE KROPKAMI. Dwukropki pozwalają potem te zmienne w dowolnym punkcie zapętlać i pracować na ich pod-zmiennych, powinno to wyglądać tak: {customEnchant::%player%::ench%{_num}%::*} Ważna jest też kolejność zapisu poszczególnych indeksów - powinno się je tworzyć tak, aby mieć łatwy dostęp do wszystkich indeksów i wartości oraz aby nie tworzyć nadmiaru zmiennych.
  3. Z tego co mi się wydaje to takie wydarzenie nie zadziała, trzeba użyć SkQuery: on any move: if {lastChunk::%player%} is not chunk at player: set {lastChunk::%player%} to chunk at player send "&7Zmieniles chunk!"
  4. Czyli masz projekt, ale nie masz nawet nic zrobione, nawet pomysłu na serwer nie masz, super. Jeżeli ty w ogóle bierzesz pod uwagę skrypt na logowanie to już teraz mogę ci powiedzieć że te skrypty, jak i cały serwer nie będą warte uwagi. No tak, to w pełni zrozumiałe, bo jak już wyżej napisałeś - nie chce ci się - dobre podejście niedoszłego właściciela. Najpierw zrób ten jeden. Inne plany nie bardzo tu kogokolwiek obchodzą. Nie. Napisałeś post tutaj, więc swoją opinię przekażę tutaj, zanim twój post wyląduje w koszu. Nie nazywaj tego prezentacją. Powtórzę się - w pełni rozumiem - nie chce ci się - to normalne wśród właścicieli serwerów minecraft.
  5. Kursor ma kolor czarny i zlewa się z tłem podczas wpisywaniu kodu w tych okienkach V Gdy tutaj piszę, to kursor jest ledwo widoczny bo ma czarny kolor a tło jest ciemne.
  6. Linijka 19 - zmienna {_p} nie istnieje, funkcja dostaje nulla: (...) and "&6Status: %chatStatus({_p}, "dzialki"})%" Swoją drogą - jeżeli chcesz zmieniać tylko jedną linijkę lore (czyli tak naprawdę jeden przedmiot) - powinieneś zrobić sobie osobną funkcję do tego, zamiast kolejny raz wykonywać komendę, która tworzy od nowa całe inventory, np. function chatStatus(p: player, s: string) :: string: if {alerty::player::%{_p}%::%{_s}%} is not set: set {alerty::player::%{_p}%::%{_s}%} to true if {alerty::player::%{_p}%::%{_s}%} is false: return "&cWylaczone" return "&aWlaczone" function changeStatus(p: player, s: string, slot: integer, item: item): #tutaj zmieniamy status zmiennej if {alerty::player::%{_p}%::%{_s}%}: set {alerty::player::%{_p}%::%{_s}%} to false else: set {alerty::player::%{_p}%::%{_s}%} to true #tutaj pobieramy sobie lore z itemu i zmieniamy ostatnią wartość (czyli status) na nowy status pobrany z funkcji set {_lore::*} to lore of {_item} set last element of {_lore::*} to "&6Status: %chatStatus({_p}, {_s})%" #zmieniamy lore w itemie set lore of {_item} to {_lore} #ustawiamy dany slot od nowa (z nowym lore) !nie trzeba używać format slota, wystarczy zmienić przedmiot w taki sposób, a TuSKe i tak zachowa dla niego zapisane efekty po kliknięciu. set slot {_slot} of {_p} to {_item} command /ustawieniaczatu [<text>]: trigger: open virtual chest inventory with 4 rows named "&8[&6✘&8] &fChat &8[&6✘&8]" to player set {_lore::*} to "&fWylacz wiadomosci &6wkroczenia na dzialke" and "&6Status: %chatStatus({_p}, "dzialki"})%" set {_item} to paper of unbreaking 10 named "&8[&6✘&8] &fDzialki &8[&6✘&8]" with lore {_lore::*} #zamiast wykonywać ponownie tą komendę, wywołujemy funkcję, która zmieni status zmiennej i zaaktualizuje przedmiot w slocie. format gui slot 12 of player with {_item} to run function changeStatus(player, "dzialki", 12, {_item})
  7. load: set {loc1} and {loc2} to {spawn} add 50 to z-loc of {loc1} add 50 to x-loc of {loc1} add 256 to y-loc of {loc1} remove 50 from z-loc of {loc2} remove 50 from x-loc of {loc2} on any move: if world of player is world of {spawn}: if player is not within {loc1} and {loc2}: teleport player to {spawn} Wymaga SkQuery
  8. z tego co rozumiem to chcesz przedmiot pobrać przy kliknięciu w te butelki z expem? inventory click: if (butelka): set {_item} to item in slot 22 of current inventory of player if {_item} is any sword: enchant {_item} with sharpness 5 set slot 22 of current inventory of player to {_item}
  9. PanMaruda

    Dwa skrypty

    command goldapple [<string>]: trigger: block below player is netherrack: block at player is red mushroom: add 1 of golden apple to player click: clicked block is any wool block: location of clicked block is (location of block at (location at 10, 90, 80)): add 1 of obsidian to player
  10. Może ja zaproponuję to: https://skriptlang.github.io/Skript/classes.html#inventoryaction Wyrażenie sprawdza co dokładnie gracz zrobił - np. położył jeden item, zabrał połowę, wyrzucił wszystkie ze slota itd. przykład: inventory click: if clicked item is air: clicked slot is 22: inventory action is place one: send "Gracz położył %cursor slot of player% w slocie 22" jeżeli kliknięty slot jest pusty: jeżeli kliknięty slot ma indeks 22: jeżeli gracz położył w slocie jeden przedmiot: send ""
  11. PanMaruda

    complete

    Najlepiej wkleić to do skryptu z komendą pod jej kodem. Pamiętaj że nie zadziała to do aliasów.
  12. Kopiujesz stare zmienne; wyłączasz serwer; nadpisujesz aktualne zmienne; włączasz serwer.
  13. Najlepiej to by było gdybyś założył serwer na normalnej i aktualnej wersji, czyt. 1.12.2+
  14. on death of player: {kille::%attacker%} is not set: set {kille::%attacker%} to 0 add 1 to {kille::%attacker%} command /top [<string>]: trigger: open chest with 3 rows named "&4Topka Serwera" to player set {_topka::*} to createTop("kille", 3, (all offline players), "&6[PLAYER]&e: &r[VALUE]" set player's current inventory's slot 10 to diamond named "&6Top PVP" with lore {_topka::*} Wymaga tego skryptu oraz pluginu w wersji 2.3
  15. if arg 1 is not set: send "%coloured {bPay::message::correctusage}%" stop if arg 2 is not set: send "%coloured {bPay::message::correctusage}%" stop if arg 1 is set: if arg 2 is set: Hmmmm.... jeżeli arg 1 nie jest podany: ZATRZYMAJ KOD jeżeli arg 2 nie jest podany: ZATRZYMAJ KOD #czyli jeżeli kod dotrwał do tego momentu to chyba logiczne że JEST podany #ale co jeżeli nie jest... sprawdzę dla pewności jeżeli arg 1 jest podany: jeżeli arg 2 jest podany: #a co jeżeli nadal nie jest podany? /pay [<offlineplayer>] [<integer>]: Nie polecam integerów w takich miejscach, później mogą ci się mocno gryźć z walutą i skończy się tak, że albo w ogóle nie będą się dodawać pieniądze, albo komenda wywali error. Do tego polecam zwykły number.
  16. No dobra, może zróbmy to tak - najpierw sprawdź czy w ogóle działają ci tekstury na główkach, zobacz tą komendę, jeżeli nie zadziała to znaczy że błąd jest w twoim launcherze: /give @p skull 1 3 {display:{Name:"Soul Fire Lantern"},SkullOwner:{Id:"59058476-81cf-4346-b418-5650bea58dd3",Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmJjODQyNmUzYjk1NzhmMjc0Y2JjNDM2NTI4MzkzZWRiNzdlMGY0YTUyNzVmN2U0ZTRjYmMzZmUxMGM1OGY4ZCJ9fX0="}]}}}
  17. PanMaruda

    Maski INGOCNITO

    on rightclick: if tool of player is blaze rod or slime ball: if helmet slot of player is set: send "Najpierw zdejmij swój hełm" else: remove 1 of tool of player from inventory of player set helmet slot of player to 1 of tool of player on chat: if helmet slot of player is blaze rod or slime ball: set chat format to "&1Zamaskowany&r: %message%"
  18. To nie wymaga niczego poza Skriptem set {_item} to skull of ("Maruda" parsed as offline player) named "Maruda" add {_item} to %inventory holder% To do działania potrzebuje Skripta, TuSKe oraz Sk-NBeeT set {_item} to player head with item-nbt "{SkullOwner:{Id:""7790b4b8-cb9b-454b-8f95-f46ce3ccc038"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjllYTIwNDRiNjRjMTI0MjhlNmY5ZDQxYzk3Zjc4YWE1YTljMmRhNGFjMDc5NWZjMjljNWM4MTMyYzU1YTg1MCJ9fX0=""}]}}}" named "Serca" open chest with 1 row to player format gui slot of player with {_item}
  19. PanMaruda

    Skript Plugin

    Bo jak się robi serwer na wersji sprzed 6 lat to tak jest. Próbuj pierwsze wersje dev 2.2, jak ci nie zadziała to możesz zapomnieć że cokolwiek innego zadziała.
  20. PanMaruda

    Skrypt na antymacro

    click: {cps::%player%::%unix timestamp of now%} is not set: delete {cps::%player%} set {cps::%player%::unix timestamp of now%} to 1 else: add 1 to {cps::%player%::unix timestamp of now%} if {cps::%player%::unix timestamp of now%} > 12: cancel event send "za duze cps" apply blindness 1 to player for 2 seconds
  21. on rightclick: if targeted entity is a player: send "celujesz w gracza %targeted entity%" if targeted block is set: send "celujesz na klocek: %targeted block%" Zasięg tego wyrażenia (domyślnie 100 kratek) możesz ustawić w konfiguracji pluginu.
  22. command /kod [<string>]: trigger: if arg 1 is "w873d": add 5 of chest named "premium chest" to inventory of player
  23. PanMaruda

    Actionbar

    function getName(p: string) :: string: replace all "_" with " " in {_p} return {_p} join: while player is online: if player is not op: if player has permission "ranga.gracz": set {_ranga} to "&7Gracz" if player has permission "ranga.vip": set {_ranga} to "&eVIP" #(...) else: set {_ranga} to "&cAdministrator" send action bar "%{_ranga}% %getName(name of player)%, Kwota: %balance of player%$" to player wait 10 tick A teraz?
×
×
  • Dodaj nową pozycję...