Skocz do zawartości

knugi

Użytkownik
  • Ilość zawartości

    1686
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    106

Treść opublikowana przez knugi

  1. gdyż składnia się nie zgadza z dokumentacją. Ta linijka powinna wyglądać tak: give {_random} of fern named "&2&lLiść Marichuany" to player lub: give player {_random} of fern named "&2&lLiść Marichuany"
  2. Okej, przepraszam bardzo, lecz tryb maruda włączony. Testowałeś ten skrypt? Bo ja wnioskuję to w taki sposób: Gracz wchodzi na serwer, otwiera mu inventory i ustawia wełnę, jedną zieloną. Kliknie (teraz zauważyłem) cokolwiek, nawet zieloną wełnę to dostanie kicka. Dlaczego? Gdyż w evencie inventory click nie ma zaimplementowanej zmiennej tymczasowej {_random} on inventory click: event-inventory is not player's inventory if name of event-inventory is "&6&l>> &aWeryfikacja Anti Bot &6&l<<": if clicked slot isn't {_random}: kick player due to "&6&l>> &cNAJPRAWDOPODOBNIEJ JESTEŚ ROBOTEM! &6&l<<" Nawet jakby ona była ściśle powiązana z graczem to by to nie przeszło, gdyż po close player's inventory którego tutaj nie ma jest event, który po zamknięciu od razu otwiera ten dziwny anty bot który tylko pobiera nazwę GUI bez żadnego sprawdzania czy anty bot przeszedł czy nie. Mi to wygląda na skrypt z generatora i nie spodziewał bym się po @lie_pan1że takie coś by mógł zrobić. Ocena 0/10. Pozdrawiam #Knugi
  3. knugi

    Skrypt na /jajko

    Oj zmień jedną linijkę: add arg 2 stray spawn egg to arg 1's inventory na: add arg 2 of stray spawn egg to arg 1's inventory oraz w pierwszej linijce <number> na <integer>, gdyż nie może być np półtora przedmiotu
  4. knugi

    shift + ppm

    Da radę, musisz poszukać w dokumentacji jak sprawdzić czy został kliknięty shift z ppm. Później zrobić iterację po przedmiotach, zsumować cenę dodać ją dla gracza i usunąć mu przedmioty
  5. Wygląda na to, że plugin SkBee nie załadował się na Twoim serwerze. Z nim jest mały problem, gdyż trzeba znaleźć odpowiednią wersję dodatku na odpowiednią wersję serwera. Testując skrypt autora sam miałem z tym problem i dopiero szósty pobrany plugin skbee zadziałał na mojej wersji.
  6. A pytałem, czy nie masz gdzieś dodatkowych takich eventów. Bo w ogóle U Ciebie liczby z dupy były. Widać jak rzetelnie sprawdzałeś Pozdrawiam #Knugi Cieszę się, że rozwiązaliśmy problem. A i polecam zmienić nazweznictwo zmiennych np na: {rpg::rozdzka::ognia::%player%} {rpg::level::%player%} itd.
  7. U mnie działa dobrze, tylko nie mogę ustawić hp zombie na milion ale to szczegół według wyliczeń to dobrze zadaje, w konsoli pokazuje 10000 zamiast 20000 bo to jest jeszcze dzielone jakoś na pół nie wiem czemu. Lore 200, zmienna 500. Kod: Wersje: Film:
  8. A poszukaj w innych skryptach czy nie masz tego zdublowanego. I poszukaj innych eventów on right click. Co do bicia z lewej łapki to jak już wcześniej pisałem, event click jest upośledzony i trzeba mocno pokombinować z tym. Ten event również wykonuje kod 2x przy jednym naciśnięciu, kiedyś to zablokowałem jakimś sposobem, lecz już nie pamiętam jak. Jak wrócę z trasy to wrzucę skrypt na serwer, potestuje
  9. Raczej się nie dogadamy chyba Jak będę na komputerze to napiszę jak to ma wyglądać, ale to dopiero za kilka godzin. Z miejsca mogę powiedzieć, że sprawdzanie lore powinno odbywać się jeszcze przed jaką kolwiek pętla, gdyż nie musimy co blok sprawdzać bo lore w tym czasie się nie zmienia. A mi chodziło tylko w pętli entity dodawać entity do zmiennej np {_ent::*} I jak już wszystkie entity mamy które muszą dostać DMG bierzesz pętlę _ent::* I wtedy jest loop-value Boooziu, jak ty to wkleiłeś To nie ma prawa działać, w ogóle jak Ci ten kod przyznawał dmg xD on right click: if player is holding blaze rod named "&6&lRóżdżka Ognia": if {klasa::%player%} is "&e[&eMag&e]": if {level::%player%} >=30: if {cd::ognia::%player%} is 0: add 6 to {cd::ognia::%player%} set {_lore::*} to uncoloured lore of player's tool loop {_lore::*}: if loop-value contains "Obrażenia magiczne:": set {_index} to loop-index exit loop replace all "Obrażenia magiczne: " with "" in {_lore::%{_index}%} set {_itemDmg} to {_lore::%{_index}%} parsed as integer set {_l} to location of block at player set {_l2} to location of block 25 meters infront of player loop all blocks between {_l} and {_l2}: spawn 10 of "FLAME" offset by 0.1, 0.4, 0.1 with extra 0.01 at location of loop-block loop entities in radius 2 of the loop-block: if {_ent::*} doesn't contain loop-entity: add loop-entity to {_ent::*} loop {_ent::*}: make player damage loop-value by {_itemDmg}*{magdmg::%player%}*0.2 stop send "&cPoczekaj %{cd::ognia::%player%}% s!" stop send "&cMasz zbyt niski poziom!" to player stop send "&cWymagana klasa &eMag&c!" to player stop #Kolejne sekcje itemow
  10. Pokaż cały event on right click. I ja dobrze napisałem loop-value gdyż to powinno iść z pętli zmiennej gdzie zapisujesz entity. A tak sobie przypominam, że kiedyś ten event odpalał się dwa razy mimowolnie i trzeba było kombinować. A że działa to na lpm to też nie ta część kodu tylko upośledzenie eventu
  11. Dziwne, ja to robiłem i zawsze działało. Tylko trzeba wiedzieć jak to zrobić. Powiedz mi, czy twoje lore się zmienia jakoś tekstem, czy tylko liczby? Liczby mogą, bo tylko je chcemy wyciągnąć. Jeżeli się zmienia to powiedz mi, czy ten damage który chcesz wyciągnąć jest zawsze w tej samej linii. Dużo mi podpowiada, że masz tylko jeden atrybut w lore, gdyż linijką: Mogło by wziąć nie ten atrybut co byś chciał. Ale jeżeli masz więcej atrybutów to właśnie pętlą tego nie rozwiążesz. Aby uzyskać liczbę z lore to trzeba mocno wiedzieć jak operować tekstem. Na pewno musi on być nie kolorowy czyli bierzesz uncoloured lore.. Jeżeli linijka się zmienia to trzeba ten tekst z niego wyciągnąć, czyli musisz mieć wszystkie odpowiednie indexy (to tylko się zdaje trudne, ale jak to zrozumiesz to jest easy) Ewentualnie, jeżeli nie chce Ci się szukać linijki lore gdy ona się zmienia możesz lore zapisać w ten sposób: set {_lore::*} to uncoloured lore of player's tool loop {_lore::*}: if loop-value contains "Obrażenia magiczne:": set {_index} to loop-index exit loop #{_index} to twoja linijka w której masz obrażenia magiczne #Teraz możesz z niego wyciągnąć damage: #Jeżeli linijka lore wygląda tak: "Obrażenia magiczne: 200" #to trzeba zrobić replace replace all "Obrażenia magiczne: " with "" in {_lore::%{_index}%} set {_lore::%{_index}%} to {_lore::%{_index}%} parsed as integer #Już tam jest zapisane 200 jako integer - możesz bazować na arytmetyce make player damage loop-value by {_lore::%{_index}%}*{magdmg::%player%}*0.2
  12. Hm, można to zrobić na kilka sposobów. Najlepszym byłoby chyba zamiast w pętlach dawać obrażenia, to entity zapisywać do tymczasowej zmiennej grupowej. Oczywiście uprzednio sprawdzając czy już entity w tej zmiennej jest. Ewentualnie, zamiast sprawdzać obrażenia pętlą, można bawić się subtextem i replacem do wyciągnięcia dodatkowych obrażeń magicznych. Gdy już będziesz miał liczbę, wystarczy parsed byś mógł nią operować. Ale i tak byś musiał zapisywać entity do zmiennej i sprawdzać czy już się tam nie znajduje bo znów będzie miał potrójne obrażenia. I po tych wszystkich pętlach, wychodzisz na sam dół za koniec pętli i robisz pętlę tej zmiennej z entity i w niej dopiero zadajesz damage
  13. Tutaj leży błąd. Wiesz ile razy wykonujesz damage? Masz 3 pętle. 1. 25 bloki na przód = 25 razy 2. każdy entity na każdym bloku (załóżmy 1 na blok) = 25*1 3. pętla 1000 razy. (integers between 1 and 1000 = 1000) = 25*1*1000 = 25000 . I to nie koniec, bo ostatnia pętla wykonuje kod zadawania damage 1000 razy. 25+26+27+28+...+998+999+1000. I to wszystko trzeba zsumować. Sobie z algorytmu możesz wyliczyć ile dostaje realnie. Prosta matematyka. Pozdrawiam #Knugi Sorki trochę źle wytłumaczyłem, ale zasada podobna. Nie zawsze entity na każdej 1 pętli tylko gdy się znajduje w drugiej. Czyli jeżeli entity stoi pomiędzy 2 a 24 kratki przed tobą to bierze w pętle 3 razy, gdyż w drugiem petli mieści się w średnicy dwóch kratek: Zatem będzie to: 3*1*1000 = 3000 zamiast 25000 i analogicznie trzeba to trzeba policzyć: Ostatnia pętla algorytmicznie od 1 do 1000: 1001*500=500500 I to wykonuje max trzy razy: 1 501 500 damage. // Dalej źle to wytłumaczyłem, ale masz problem z pętlami i logicznym ułożeniem damage. On Ci się podwaja troi i staje na głowie i zabija od razu
  14. Zobacz czy posiadasz wszystkie wymagane pluginy i wszystkie potrzebne (trzy) skrypty. Jeżeli wszystko się zgadza powiedz co kryje się pod komendami: /ver /ver sk /Sk reload all
  15. Testowałem na wersji: Spigot 1.16.4 Skript 2.6.4 Skript-reflect 2.3 SkBee 1.12.4 Błędów nie ma, skrypt działa jak należy. Zabezpieczony przed niepotrzebnymi błędami, nawet logicznymi. Niestety, nie udało mi się odtworzyć wiadomości z trzymającym plecakiem w drugiej ręce, chyba nie potrafię, lecz widzę w kodzie, że jest zabezpieczone, więc jest git. Proponuję do tego jeszcze dodać możliwość zmiany koloru plecaka (wiem pewnie jest to równoważne z zmianą nbt skull owner i mało opłacalne, lecz bajer byłby fajny) Ewentualnie zamiast zmian koloru to możliwość Edycji nazwy aby podpisać co w danym plecaku się znajduję (też średnio wykonalne ponieważ w evencie sprawdzasz nazwę przedmiotu) Szukałem w internecie czy nie jest to plagiat, lecz nic sensownego nie znalazłem, podziwiam za tak fenomenalne użycie nbt oraz skript-reflect. Godny przeciwnik w walce o skrypt miesiąca Polecam i pozdrawiam #Knugi
  16. Ehh, mógłbyś napisać, że skrypt jest na wersję 1.19 Władowałem go na 1.16.4 i wywaliło błędy z recovery compass, a ten przedmiot jest od 1.19 Przeglądając kod, zauważyłem, że opcja "rank1" jest niekompletna, gdyż zmienimy jej wartość to nie zadziała nam komenda, ponieważ masz ustawioną ją w skrypcie: if name of event-inventory is "{@prefix} &9&lVOUCHERY": cancel event if clicked slot is 4: close player's inventory send " " send "&bBy dac komus {@vouchername1}&b, wpisz komende:" send "&d/vouchervip &f<Gracz>" send " " execute player command "vouchervip %player%" ostatnie 3 linijki. A implementacja komendy: command /voucher{@rank1} [<player>]: Więc gdy zmienimy opcję w rank1 na np "svip" to komenda i tak nie zostanie uruchomiona poprzez gui VOUCHERY, a nawet wiadomość błędną wyświetli. Komenda /regulamin wysyła zlepek wiadomości, których nie da się ustawić poprzez options, bądź zmienne. Tylko trzeba przestawić w kodzie. Jeżeli do skryptu jest wymagany plugin Essentials to po kiego czorta w skrypcie jest komenda /broadcast? Żeby zmienić wygląd wiadomości? Można to zmienić również w essentials. Komenda /discord również mógłbyś to dodać w options. Komenda /media otwiera gui z którego możemy tylko wyjść, nic nie dodaje praktycznego. GUI pomoc, wyświetla nam warpy, których nawet możemy nie mieć na serwerze. A te które mamy i tak nie wyświetli. set slot 15 of {_gui} to diamond named "cos tam" with lore "coś tam" set slot 18 of {_gui} to emerald named "cos tam" with lore "coś tam" set slot 26 of {_gui} to paper named "cos tam" with lore "coś tam" set slot 1-26 of {_gui} to {@ramka} named " " with lore " " A po co to komu? A na co to potrzebne? I ostatnia linijka nie działa, ponieważ nie ustawia ramki w slotach od 1 do 26 tylko slot -25 którego nawet nie ma. No i co mówisz, że skrypt nie wspiera pexa, jak może wspierać? Wystarczy w options zmienić komendę na tę z pexa i będzie wspierać. Przepraszam tak dużo krytyki, lecz tyle błędów znalazłem. Pozdrawiam #Knugi
  17. Myślałem na zapisywaniu każdego znaku < i >, i po prostu omijać te miejsca w pętli. Lecz to od groma kodu, to wpadłem na inny pomysł. Można przecież sprawdzać czy wyjściowy tekst nie jest taki sam niż poprzedni wysłany. Zrobiłem mały kod, lecz powtórzenia nie zostały wyeliminowane do końca, gdyż zostawał jeszcze w zmiennej paragraf. Paragraf którego nie widać. § Musiałem zastosować usunięcie jego i nagle kod odżył command /ab [<text>]: trigger: set {_ab} to "aaaa<##050505>baaaa" loop length of {_ab} times: set {_check} to uncoloured (subtext of {_ab} between index 0 and index loop-number) replace all "§" with "" in {_check} if {_check} is not {_check2}: set {_check2} to uncoloured (subtext of {_ab} between index 0 and index loop-number) replace all "§" with "" in {_check2} send subtext of {_ab} between index 0 and index loop-number to all players wait 0.1 seconds
  18. Nazwa skryptu: kGame - innowacyjny spis mini gierek Link do prezentacji:
  19. kGame Opis: Witam, kGame to bardzo zaawansowany skrypt, który dodaje mini gry w Inventory. Zapoczątkował w mojej głowie pod koniec 2018 roku, z początku był pisany pod wersję 1.12, z biegiem czasu serwery mocno się zmieniły i musiałem większość zmienić pod nowsze wersje. Ale co on tak naprawdę dodaje? Tak na prawdę to tylko jedną komendę /gry Ona otwiera nam inventory, w którym mamy do dyspozycji gry, które zrobiłem, ale żeby to nie było za mało, możecie także prostym sposobem dodawać swoje gierki. Są również rozbudowane statystyki każdej z gry, gdzie możemy zobaczyć ile razy w daną grę graliśmy, jakie wyniki uzyskaliśmy oraz czy byliśmy lepsi od innych graczy. Zapisywane są w pliku konfiguracyjnym YML. Możemy konfigurować wygląd głównego Inventory w plugins/kGame_Util/mainInventory.yml lub statystyk w plugins/kGame_Stats/mainInventory.yml Wymagania: Skrypt, do poprawnego działania musi posiadać: ♦ Skript 2.6.4 ♦ SkQuerry 4.1.8 ♦ skript-reflect 2.3 Wersje pluginów na ten moment są najnowsze. Kilka ss'ów: Własne gry: Wspomniałem, że można dodawać swoje gry -> nic trudnego! Wystarczy, że zastosujesz się do schematu, który piszę w spojlerze poniżej: Funkcje: Korzystając z tego skryptu, jak i również z jego statystyk, musisz poznać kilka funkcji które się przydadzą podczas obcowania: WAŻNE! korzystając z moich funkcji, aby przejść do nowej linii w lore, należy używać || !!!! Można również dodać w topce najszybszy czas, wtedy {VAR} = {time}. Aby zapisywać czas, musi to być różnica czasów (TimeSpan) lub czas w milisekundach! DOWNLOAD: V9.2: kGame: https://code.skript.pl/JLkbttr3 aGameUtil: https://code.skript.pl/uil4fY6T akGameStats: https://code.skript.pl/wXS3oZmE Te 3 pliki są wymagane by to wszystko działało. W tym nie ma gotowych skryptów, znajdziesz je trochę niżej. Chyba nawet ważne jest nazewnictwo skryptów, gdyż najpierw musi załadować funkcje, więc proszę ustawcie takie same nazwy jak tutaj podałem, żeby nie było płaczu że coś nie działa. Kolko i krzyzyk: kGameKolkoiKrzyzyk: https://code.skript.pl/PdW0CxV7 Clicker: kGameClicker: https://code.skript.pl/QyldXZ0N Po kolei: kGamePoKolei: https://code.skript.pl/jJO8XHQj Test: kGameTest: https://code.skript.pl/9ekfFpay Do dodatku PoKolei potrzebny dodatek Skellet 2.0.9 Długo wyczekiwany, pewnie przez nikogo, doceni go osób kilka. Dajcie na zachęte chociaż 7 plusików Pozdrawiam #Knugi, to już można lecieć na emeryturę
  20. knugi

    Yaml - topka

    Oczywiście, że tak. Poszukaj w dokumentacji expression który zwraca listę plików w folderze, a następnie w pętli setuj zmienną tymczasową grupową z pliku gdzie: Loop-index uuid gracza Loop-value wartość pliku
  21. bo musisz napisać loop-player's health.
  22. knugi

    split at

    Wyp****olić cudzysłowia i procenty: send subtext of {_m} between index 0 and index loop-number
  23. knugi

    on command

    Może zmienna {onlineee::%player%} nie jest ustawiona na false?
  24. knugi

    split at

    Możesz to zrobić takim sposobem: command /md [<text>]: trigger: set {_m} to arg loop length of {_m} times: send "%subtext of {_m} between index 0 and index loop-number%" A jeżeli koniecznie musisz w zmiennej grupowej, możesz wykorzystać effect replace
  25. knugi

    Pomoc przy is

    execute console command "give 54 16 named "Magiczna Skrzynka" with lore " tekst" to player-arg" na: give 16 of chest named "Magiczna Skrzynka" with lore " tekst" to player-arg
×
×
  • Dodaj nową pozycję...